4

私はこのドキュメントsinonjs.orgを読んでいましたが、スタブとモックの違いが明確ではありません。
誰かが簡単な言葉と、スタブとモックの違いの例を説明してくれませんか?

PS:モックとスタブ (JMock) の違い
については既に読みましたが、回答には例がありません。

4

2 に答える 2

2

私はいくつかの言葉で説明しようとします:

  • モック:SUTでコラボレーションを検証する場合に使用します。コラボレーターをモックしてから、コラボレーションが完了したかどうかを確認する必要があります。

    var collaborator = {};
    collaborator.collaboration = sinon.mock();
    SUT.setCollaborator(collaborator);
    SUT.play();
    collaborator.collaboration.verify();
    
  • スタブ:SUTの共同作業者が必要であるが、テストでは共同作業がテストされていない場合に使用します。

    var collaborator = {};
    collaborator.collaboration = sinon.stub().returns(1);
    SUT.setCollaborator(collaborator);
    SUT.play();
    

スタブとモックの下にあるテクノロジーは似ていますが、違いはテストの意図です。

http://sinonjs.org/docs/#mocksから:

モックには、テストに失敗する可能性のある期待が組み込まれています。したがって、実装の詳細を強制します。経験則では、特定の呼び出しにアサーションを追加しない場合は、それをモックしないでください。代わりにスタブを使用してください。

于 2012-08-28T11:41:29.180 に答える