1

私は最近、Spork を開発スタックに追加しました。速度の向上が気に入っていますが、spork の有無にかかわらず異なるパフォーマンスを示すテストがいくつかあります。

問題のテストは非常に単純で、オブジェクトの 1 つのクラスが他の 2 つのオブジェクトを取り、それらの間に結合を作成できることをテストします。

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を実行してこのテストを実行すると、このテストは問題なくパスします。ただし、スポークがないと、アサーションは失敗します。object1アサーションを行う前にリロードすることで、スポークの有無にかかわらず通過させることができます。

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
テストを実行する 2 つの方法で異なる結果が得られるのは奇妙だと思います。スポークがどのように機能するかについての重要な知識が欠けているように感じます! 同様に、spork は自動的にオブジェクトをリロードしますか?
誰かが私のためにこれに光を当てることができれば、本当に感謝しています.

4

0 に答える 0