rspec 3引发'没有实现'只有在运行全套房时

时间:2017-06-22 09:59:07

标签: ruby-on-rails rspec rspec3

从rspec 2升级到3.当我单独运行测试(rspec spec/models/foo_bar_spec.rb)时,它会通过。但是当我运行rspec spec/models时,此测试失败了:

1) FooBar does something
    Failure/Error: allow_any_instance_of(FooBar).to receive(:some_class_method)
      FooBar does not implement #some_class_method
    # ./spec/models/foo_bar_spec.rb:15:in `block (2 levels) in <top (required)>'

表示规范的违规行是:

before(:each) do
  allow_any_instance_of(FooBar).to receive(:some_class_method)
end

然后我运行rspec spec/models --format documentation --fail-fast以查看之前正在运行的测试;即使我将它们全部注释掉,以便foo_bar_spec是第一个运行的测试,它仍然以同样的方式失败。

--format documentation向我证明FooBar规范是先运行的。单独运行它证明语法是正确的。在rspec 3中是否有一些隐藏的陷阱我不见了?我已经在相关问题中建议使用transactional_fixtures。

0 个答案:

没有答案