Rspec で Spork を使用しており、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
すべて正常に動作します。そのため、マッチング メソッドが間違ったカウントを調べているようです。これはなぜでしょうか?