【发布时间】:2012-10-02 19:24:19
【问题描述】:
我在 rspec 和 rspec-rails 2.11.0 中遇到了一些令人费解的行为。我在运行 2.7.1 的同事应用程序上重现了该行为(均在 ruby 1.9.3 上)
这些测试按预期工作(失败):
it "should not change i" do
i = 0
expect {
i = 2
}.not_to change { i }
end
it "should not change i" do
i = 0
expect {
i = 2
}.not_to change { i }.from( 0 )
end
在这两种情况下,失败消息都是“结果不应该改变,但确实从 0 变为 2”
无论期望块中 i 的值发生什么变化,将期望中的“来自”更改为不同的值都会莫名其妙地使其通过,而不是失败:
it "should not change i" do
i = 0
expect {
i = 2
}.not_to change { i }.from( 1 )
end
我最近才升级到 1.9.3,我可以肯定地说,如果我之前经历过这种行为,我会注意到它。谁能解释这个和/或我做错了什么?
【问题讨论】:
标签: ruby-on-rails rspec2 rspec-rails