Rails simple_simple表单,功能测试无法填充字段/有时

时间:2016-02-10 21:10:04

标签: ruby-on-rails rspec capybara simple-form

我有一个挑剔的测试。

我使用simple_form和rails创建了一个非常标准的作业/大学类型的应用程序供用户填写。

问题:有时在功能测试中,当用户编辑应用程序(通过Factoryfirl创建)时,rails / simple_form无法使用日期的某些变量填充日期字段。这似乎只有在include_blank:为true时才会发生。

我知道它是用日期创建的。该字段未能填充日期,有时仅填充年份列。

我不认为这是我写的任何问题,因为测试有时会起作用。可能是配置问题所以:

  • rails-4.2.5.1
  • rspec-core-3.3.2
  • 水豚-2.5.0

对该字段的调用:

= required_field_on_submit(f, :profile, :birthdate, as: :date, start_year: years_ago(100), end_year: years_ago(Application::MINIMUM_AGE - 1), include_blank: true, order: order(:m, :d, :y))

required_field_on_submit只是f.input的自定义包装器,是验证应用程序的方式的bc。那里没有什么好玩的,已经检查过了。

2 个答案:

答案 0 :(得分:1)

正如我在评论中提到的 - 在测试过程中,日期选择未被页面正确填充的常见原因是生成的数据(工厂等)超出了日期选择的可接受范围

答案 1 :(得分:0)

您是否可以手动选择前端(years_ago(100))给出的值?如果是,则确保在传递值之前正确加载页面。您可以等待元素或验证页面上的消息。 您还可以尝试通过添加“puts”语句来调试失败的情况,以便在控制台中打印日期,以便验证日期是否在正确的范围内。