我有一个测试,我正在做的地方,我正在测试可用的日期,我的网站显示的数据。数据报警器应该使下一个X工作日可用,而忽略周末和假日。
我测试了两种情况,一种是为下订单的人(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只显示了我期望的可用的正确日期。由于某些原因,这是说,第二和第六有链接(即可选择的日期),而他们显然没有。以下是cna错误的一个例子:
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)>在浏览器使用rpsec检查之前,我用Pry冻结测试时,我截取了浏览器在测试期间的样子。截图如下所示

奇怪的是,7月4日,其他周末,如7月7日和7月17日,不会触发这一错误。如果我注释掉2号和6号的测试,测试就通过了。有人知道为什么会这样吗?
我的工作对象是: Capybara 2.1,Rspec-rails 2.14.0
发布于 2013-08-05 18:52:12
我发现了问题。因为第二个不是一个链接,第12号是一个链接,当我使用代码时
find(".ui-datepicker-group-first").should_not have_link("2")它检测到日期"12“的链接。同样的情况发生在第六和十六号。我把测试改为:
find(".ui-datepicker-group-first").should_not have_link(/^(2)$/)这解决了问题。
https://stackoverflow.com/questions/17955693
复制相似问题