0

重複の可能性:
オブジェクトモックとは何ですか?いつ必要ですか?

を使用してモックオブジェクトを作成する理由

MyObject myOb = Mockito.mock(MyObject.class);

代わりに使用できるのはいつですか:

MyObject myOb = new MyObject();

    public class MyObject(){
       private String str;
       //getters and setters
    }

上記のオブジェクトがより複雑になり、他のオブジェクトとの依存関係がある場合は、これらのモックオブジェクトも作成する必要があります。したがって、オブジェクトをテストするためにすべてのメンバーを設定する必要がある場合は、フレームワークを使用してオブジェクトをモックするのではなく、オブジェクト自体を作成するだけではどうでしょうか。

4

3 に答える 3

6

例で書いた行数を比較するだけです。もちろん、すべてのモックを手動で作成することはできますが、より多くの入力を行うことになり、テストが読みにくくなります。

于 2012-08-13T11:18:43.157 に答える
2

何かをモックするとき、パラメータなどを使用してメソッドが呼び出されたと主張できるように、特定のことが起こると主張することもできます。

具象クラスを使用してこれを行うことはできません

于 2012-08-13T11:20:29.963 に答える
1

この質問をしている場合、モックを必要とするほど複雑なテストシナリオに遭遇したことはありません。もちろん、クラスが単純で分離されていて、インスタンス化するだけでテストできる場合は、そうする必要があります。

ただし、多くの実際のケースでは、単体テストシナリオでそれらをインスタンス化することが不可能な(または望ましくない)他のクラスに依存するクラスをテストする必要があります。外部のサービスやデータベースと通信している可能性があります。インスタンス化する必要のある追加の依存関係の長いチェーンがある可能性があります。

また、単体テストとは、特定の計算単位を分離し、それらが独立して動作することを確認することです。モックはこれを行うための優れた方法であり、テストから依存関係を削除できます。事実上、「依存関係AがYを返すと仮定して、このメソッドがXを返すことを確認します(そして、依存関係Aがこれらの引数で呼び出されることを確認します)。

于 2012-08-13T11:27:49.777 に答える