モッキングとは何ですか?質問する

モッキングとは何ですか?質問する

モッキングとは何ですか?

ベストアンサー1

プロローグ: 辞書で「mock」という名詞を調べると、その単語の定義の 1 つに「模倣として作られたもの」とあることがわかります。


モックは主にユニット テストで使用されます。テスト対象のオブジェクトは、他の (複雑な) オブジェクトに依存している場合があります。テストするオブジェクトの動作を分離するには、他のオブジェクトを実際のオブジェクトの動作をシミュレートするモックに置き換えます。これは、実際のオブジェクトをユニット テストに組み込むのが現実的ではない場合に便利です。

簡単に言えば、モックとは、実際のオブジェクトの動作をシミュレートするオブジェクトを作成することです。


場合によっては、モックスタブを区別したい場合があります。この件については意見の相違があるかもしれませんが、私のスタブの定義は「最小限の」シミュレートされたオブジェクトです。スタブは、テスト対象のオブジェクトがテストを実行できるようにするために十分な動作を実装します。

モックはスタブのようなものですが、テストではテスト対象のオブジェクトが期待どおりにモックを呼び出すかどうかも検証します。テストの一部は、モックが正しく使用されたかどうかを検証することです。

例を挙げると、レコードを保存するための単純なメモリ内構造を実装することで、データベースをスタブ化できます。テスト対象のオブジェクトは、データベース スタブにレコードを読み書きして、テストを実行できるようになります。これにより、データベースに関連しないオブジェクトの動作をテストすることができ、データベース スタブはテストを実行するためだけに含められます。

代わりに、テスト対象のオブジェクトが特定のデータをデータベースに書き込むことを確認したい場合は、データベースをモックする必要があります。その後、データベース モックに書き込まれた内容に関するアサーションをテストに組み込みます。

おすすめ記事