gpt4 book ai didi

ruby-on-rails - 如何使用 rspec 测试选择日期?

转载 作者:行者123 更新时间:2023-11-28 20:20:59 25 4
gpt4 key购买 nike

如何使用集成 rspec 测试来测试以下代码(我也在使用 capybara )?

 1 <%= form_for [@project, @task] do |f| %>

17 <p>
18 <%= f.date_select(:target_date,
19 :default => Date.today,
20 :order => [:day, :month, :year], :start_year => Date.today.year,
21 :end_year => Date.today.year + 3) %>
22 </p>
23
24 <%= f.submit %>
25
26 <% end %>

到目前为止,我有以下代码...

select '28', :from => :day 

...但它说 > 无法选择选项,找不到带有 ID、名称或标签“day”的选择框

编辑:在查看页面的 HTML 输出时,我注意到 Rails 自动将 id 添加到日、月和年字段...例如,day 的输出如下所示...

<select id="show_date_3i" name="show[date(3i)]"><option value="1">1</option>

但话又说回来,当我这样做...

select '28', :from => :show_date_3i

...它说 >>> 无法选择选项,找不到带有 ID、名称或标签“show_date_3i”的选择框...这是为什么?

最佳答案

Rails Form Helpers 将日期选择字段分解为一组数据部分——可能将它们命名为 1i6i——它们代表年、月、日,数据时间的小时,分​​钟和秒。

对于日期,只使用年、月、日部分。

给定你的表单助手标签:

 <%= f.date_select(:target_date,
:default => Date.today,
:order => [:day, :month, :year], :start_year => Date.today.year,
:end_year => Date.today.year + 3)
%>

我建议您先了解 html 日期如何在选择框中呈现,然后使用 capybara 匹配器来选择它们。

因此,例如,如果您选择的日期是“2011/01/01”,而您选择的是“显示日期”,您可以这样写:

select '2011/01/01', :from => 'Show Date'

请参阅此相关问题:

How to select date from a select box using Capybara in Rails 3?

还有 ruby​​-doc.info 上的 capybara 匹配器文档:

http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers

关于ruby-on-rails - 如何使用 rspec 测试选择日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com