我正在使用类实例变量来跟踪@instances。当我分别运行每个规范时,它们会通过。但是当我一起运行所有组件时,会出现意外的行为。
it "returns 1" do
mock = Mock.new
expect(Mock.count).to eq(1)
end
it "returns 2" do
mock = Mock.new
mock = Mock.new
expect(Mock.count).to eq(2)
end
当我分别运行时,所有规格均为绿色。但是,当我同时运行这两个规范时,第二个规范返回的计数为3。因此,我看到Mock在某种程度上仍然适用于所有规范。我使用的是纯红宝石,没有数据库或导轨或其他任何东西。
答案 0 :(得分:4)
这就是类实例变量要做的。它们是类本身的状态,通常在应用程序的生命周期内(或在您的情况下运行测试套件)持续存在。
答案 1 :(得分:0)
我找到了解决方法!
before do
@Mock = Class.new.include(IDable)
end
然后每次使用@Mock时,它将具有新的类实例变量!