如何在黄瓜上测试日期时间选择输入

时间:2012-04-22 08:49:13

标签: ruby-on-rails cucumber

我需要编写一个黄瓜测试来测试日期时间选择行为。

这是我的一句话: 当我选择“2012-4-30 15:00”作为“start_time”

这是我的html视图:

      = form_tag time_off_requests_path do
      = label :time_off_request, :start_time, 'Start Time'
      = datetime_select :time_off_request, :start_time , :start_year => Time.current.year, :use_short_month => true

      = submit_tag 'Save Changes'
我尝试过类似的东西 当/ ^我选择“([^”] )“作为”([^“] )”$ / do | date_time,label |   select(date_time,from => label) 结束 但它不起作用。 get找不到id,“select box”的名称 真的需要帮助!

3 个答案:

答案 0 :(得分:1)

datetime_select帮助程序生成select的 set ,而不是单个表单字段。您应该编写一个自定义步骤,将日期时间的每个部分(日,月,年,小时......)分配到相应的字段。

答案 1 :(得分:0)

这是我为输入从datetime_select生成的字段而创建的黄瓜测试的自定义步骤:

When /^(?:|I )select datetime "([^ ]*) ([^ ]*) ([^ ]*) - ([^:]*):([^"]*)" as the "([^"]*)"$/ do |year, month, day, hour, minute, field|
  select(year,   :from => "#{field}_1i")
  select(month,  :from => "#{field}_2i")
  select(day,    :from => "#{field}_3i")
  select(hour,   :from => "#{field}_4i")
  select(minute, :from => "#{field}_5i")
end

在您的测试中,您将其称为:

When I select datetime "2014 March 2 - 19:00" as the "start_time"

答案 2 :(得分:0)

您可以使用select_date cucumber helper

select_date '2014-01-01', from: 'Start Time'

示例步骤:

When(/^I choose "([^"]*)" in "([^"]*)" date select$/) do |value, select_label|
  select_date value, from: select_label
end

http://www.rubydoc.info/github/cucumber/cucumber-rails/Cucumber/Rails/Capybara/SelectDatesAndTimes