我最近将Spork添加到我的开发堆栈中,我只是喜欢提高速度,但是有一些测试在有或没有spork的情况下表现不同。
有问题的测试非常简单,它测试一类对象可以占用另外两个对象并在它们之间创建连接。
it 'should associate object1 with object2' do
@object_under_test.action_being_tested(object1, object2) #action
object1.associated_objects.should be_include(object2) #assertion
end
如果我使用 spork运行此测试,那么此测试正常。但是没有 spork断言失败。在做出断言之前,我可以通过重新加载object1
来使它通过或不通过spork。
it 'should associate object1 with object2' do
@object_under_test.action_being_tested(object1, object2) #action
object1.reload
object1.associated_objects.should be_include(object2) #assertion
end
从需要在这些测试中添加reload
的预期行为来看,这并不是一个问题,因为object1
在调用其associated_objects
之前会被重新加载。
我觉得奇怪的是,运行测试的两种方式有不同的结果。我觉得我缺少一些关于spork如何工作的核心知识!喜欢,spork会自动重新加载物体吗?
如果有人能为我阐明这一点,我会非常感激。