我们将 Spork 与 Rspec 一起使用,如果我们运行 Spork,我们的测试通过,但如果我们不启动 spork 并使用以下命令运行测试:
bundle exec rspec spec
发生了几次失败,所有这些都是使用 should.have 语法的失败,例如:
inactive_user.received_messages.should have(1).message
1) Message introduction messages to active users should be created as messages to both users
Failure/Error: initiator.sent_messages.should have(1).message
expected 1 message, got 6
这个数字的有趣之处在于数据库中共有多少条消息,所以:
initiator.sent_messages.should have(1) == Message.count
如果没有 Spork,如果我像这样修改测试:
inactive_user.received_messages.count.should == 1
一切正常。所以看起来匹配方法正在查看错误的计数。知道为什么会这样吗?