0

私はプロジェクトで Kiwi を使用していますが、 amockと aをいつ使用するかがよくわかりませんnullMock。Kiwi のドキュメントで現在提供されているものは次のとおりです。

プレーンなモック オブジェクトは、予期しないセレクターまたはメッセージ パターンを受け取ると、例外を発生させます。モックでスタブまたは受信期待値が使用されると、期待されるメッセージが自動的にモックに追加されます。

モックが他のメッセージを受信することを気にせず、例外を発生させたくない場合は、null モック (null オブジェクトとも呼ばれます) を使用します。

この違いはどのようなシナリオに影響を与えるのでしょうか。

4

1 に答える 1

0

Null モックには、送信される可能性のあるすべてのメッセージに応答するという優れた機能が付属しています。これは、そのモックで呼び出されるすべてのメソッドを手動でセットアップする必要がないことを意味します。通常のモックにはこれがありません。依存関係として注入する場合は、準備する必要があります。

null mockとにかく、他のテストのモックで他のメソッドをテストしているので、特定のメソッドが呼び出されたかどうかに通常関心があるため、ほとんどの場合に a を使用します。

これには利点と欠点があります。

  • を使用null mocksしたテストは、「他の」メソッドのいずれかによってトリガーされたコーナーケースをテストするのを忘れる可能性があるため、微妙なバグを隠す可能性があります
  • を使用するテストnull mocksは、テストされたメソッドが呼び出すすべてのメソッドを追跡する必要がないため、より迅速に開発されます。これは、テストとコードの間に強い関係を作成するため、リファクタリングが難しくなるため、良くありません
于 2015-04-23T23:01:15.650 に答える