我有一个看起来像这样的规范:
foo.members << bar
# test some aspect of bar which assumes its membership in foo
- 当我单独运行规范时(在命令行中使用 rspec 指向文件,或者在检测到文件更改后使用保护运行整个文件或仅运行单个示例),它通过了。
- 当我运行整个测试套件时(或者整个测试套件,或者实际上只是调用整个测试套件,但使用
:focus
单个示例,以便它仍然是唯一运行的测试套件,就像上面的第一个要点一样)它失败了。
这修复了它:
foo.members << bar
bar.reload # <-- the fix
# test some aspect of bar which assumes its membership in foo
所以出于某种原因,在第一种情况下,bar 的成员资格在内存中正确更新,而在第二种情况下则没有。为什么?