1

我最近将 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 会自动重新加载对象吗?
如果有人能为我阐明这一点,我将不胜感激。

4

0 回答 0