Rspec测试报告无效传递

时间:2014-10-06 09:45:07

标签: ruby-on-rails rspec capybara

我有几个测试报告了一个看似失败的传递:

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如下:

1 个答案:

答案 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..."

就目前而言,你的测试不是在做一个断言,它只是在评估一个布尔表达式。