次のような仕様があります。
foo.members << bar
# test some aspect of bar which assumes its membership in foo
- spec を個別に実行すると (コマンド ラインで rspec がファイルを指すようにするか、guard がファイル全体またはファイルの変更を検出した後に 1 つの例だけを実行するかのいずれかで)、パスします。
- テストスイート全体を実行すると (全体を実行するか、実際には全体を呼び出すだけ
:focus
で、単一の例を使用して、上記の最初の箇条書きのように実行される唯一のものになるようにします)、失敗します。
これで修正されます:
foo.members << bar
bar.reload # <-- the fix
# test some aspect of bar which assumes its membership in foo
したがって、何らかの理由で、最初のケースでは bar のメンバーシップがメモリ内で適切に更新され、2 番目のケースではそうではありません。なんで?