我需要编写一个黄瓜测试来测试日期时间选择行为。
这是我的一句话: 当我选择“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”的名称
真的需要帮助!
答案 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