rspec可以输出使测试失败的值吗?

时间:2011-04-02 20:20:28

标签: ruby-on-rails ruby specifications

我的陈述如下:

@obj[:attribute].eql?("TestValue").should be_true

如果不是只告诉我测试失败,它会告诉我它失败了,因为@obj [:属性]是零或者是1234或者不管它是什么,这样会很好。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:7)

做类似

的事情
@obj.attribute.should eql(5)

它会抛出错误,你通常会看到

expected 5
     got 10

您有eql?的具体原因吗?

答案 1 :(得分:0)

当然,rspec确实输出了预期值和实际值之间的差异。您只需更改匹配器即可向您提供更多相关信息。现在你的期望是表达式@obj[:attribute].eql?("TestValue")将为真,而rspec将通知你它是假的。如果你把你的期望重写为

@obj[:attribute].should eql("TestValue")

你应该看到你正在寻找的那种输出。