我有几个测试报告了一个看似失败的传递:
1059: describe "open second event" do
1060: before { find("div[data-event-no='1'] a[data-toggle='collapse']").click }
=> 1061: it { binding.pry
1062: find("div[data-event-no='0'] a[data-toggle='collapse']").text == "More info..."}
1063: # it { find("div[data-event-no='0'] a[data-toggle='collapse']").text != "Less info..."}
1064: # it { find("div[data-event-no='1'] a[data-toggle='collapse']").text == "Less info..."}
1065: # it { find("div[data-event-no='1'] a[data-toggle='collapse']").text != "More info..."}
1066: it { should have_content(venue.events[1].description)}
[11] pry(#<RSpec::Core::ExampleGroup::Nested_1::Nested_4::Nested_6::Nested_1>)> find("div[data-event-no='0'] a[data-toggle='collapse']").text
=> "Less info..."
[12] pry(#<RSpec::Core::ExampleGroup::Nested_1::Nested_4::Nested_6::Nested_1>)> find("div[data-event-no='0'] a[data-toggle='collapse']").text == "More info..."
=> false
[13] pry(#<RSpec::Core::ExampleGroup::Nested_1::Nested_4::Nested_6::Nested_1>)> e
.
Finished in 3 minutes 21.05 seconds
1 example, 0 failures
Randomized with seed 0
Coverage report generated for RSpec to /Users/richardbox/Dropbox/Rails/kc/kangodo/coverage. 537 / 1260 LOC (42.62%) covered.
另请注意,我使用js:true设置运行。
我期待第1061/2行的测试失败,实际上我将测试中的语句复制/粘贴到控制台中,响应为false,但结果是测试通过。
为什么这会在控制台中失败,但通过测试?有没有更好的方法来编写测试?
相关部分生成的html如下:
答案 0 :(得分:1)
尝试:
find("div[data-event-no='0'] a[data-toggle='collapse']").text.should == "More info..."
或
expect(find("div[data-event-no='0'] a[data-toggle='collapse']").text).to eql "More info..."
就目前而言,你的测试不是在做一个断言,它只是在评估一个布尔表达式。