我正在测试我正在测试我的网站为datepicker显示的可用日期。 datepicker应该可以使下一个X工作日可用,并忽略周末和假日。
我正在测试两个场景,1个用于查看下订单的人(7月1日)的接送日期,并选择接听,接下来的5个工作日(7月2日,3日,5日,8日和9日)可用。我使用以下rspec / capybara代码对其进行了强力测试,它没有任何问题:
find("#datepicker_").click
find(".ui-datepicker-group-first").should_not have_link("1")
find(".ui-datepicker-group-first").should have_link("2")
find(".ui-datepicker-group-first").should have_link("3")
find(".ui-datepicker-group-first").should_not have_link("4")
find(".ui-datepicker-group-first").should have_link("5")
find(".ui-datepicker-group-first").should_not have_link("6")
find(".ui-datepicker-group-first").should_not have_link("7")
find(".ui-datepicker-group-first").should have_link("8")
find(".ui-datepicker-group-first").should have_link("9")
find(".ui-datepicker-group-first").should_not have_link("10")
下一个测试涉及运送物品而不是提货,因此在5天的运输时间内,可用日期应为第3,第5,第8,第9,第10,第11,第12,第15和第16。但是,我的测试(与上面相同,但查看2到17日之间的范围)是失败的,即使datepicker只显示我期望的正确日期。出于某种原因,它说第二和第六有链接(即可选日期),但他们显然没有。下面是错误的一个例子:
Failures:
1) cart functionality should make the right delivery dates available in the cart
Failure/Error: find(".ui-datepicker-group-first").should_not have_link("2")
expected #has_link?("2") to return false, got true
# ./cart_functionality_spec.rb:100:in `block (2 levels) in <top (required)>
我在测试期间截取了浏览器的样子,当时我用Pry冻结了测试,然后用rpsec进行了检查。屏幕截图可以在下面看到
奇怪的是,7月4日,其他周末,如7月7日和7月17日,不会触发此错误。如果我评论第2和第6的测试,测试通过。有谁知道为什么会这样?
我正在与: Capybara 2.1, Rspec-rails 2.14.0
答案 0 :(得分:0)
我发现了这个问题。由于第二个不是链接,第12个是链接,当我使用代码
find(".ui-datepicker-group-first").should_not have_link("2")
检测到日期“12”的链接。同样的情况发生在6日和16日。我把测试改为:
find(".ui-datepicker-group-first").should_not have_link(/^(2)$/)
并解决了这个问题。