Mockito-間接的なプライベートフィールドオブジェクトによって行われたメソッド呼び出しを検証する方法

user3808203

間接プライベートフィールドオブジェクトによって行われたメソッド呼び出しを検証しようとしています。例えば

テストするコード:

class A
{
    final private B b;
    public A(C c, D d)
    {
        this.b = new B(c,d);   
    }

    public void methodToTest()
    {
        b.wantToVerifyThisIsCalled();
    }
}

class B
{
   private C c;
   private D d;

   public B(C c, D d)
   {
      this.c = c; 
      this.d = d;
   }
   ...
   public void wantToVerifyThisIsCalled()
   {
       //do stuff 
       return;
   }
}

A.methodToTest();を実行したときにb.wantToVerifyThisIsCalled()メソッドが呼び出されたことを確認したいと思います。

私はこのようなことを試しましたが、これは機能しません:

C c = mock(C.class);
D d = mock(D.class); 
A a = new A(C,D);
B b = moc(B.class);

a.methodToTest();
verify(b).wantToVerifyThisIsCalled();  \\<-- This gives me error, wanted but not invoked

クラスAのこのbフィールドオブジェクトが実際にそのメソッド呼び出しを行っていることをどのように確認する必要がありますか?

残念ながら、setterメソッドはなく、フィールドオブジェクトもfinalとしてマークされています:(

ありがとうございました

Rohit Jain

これは、メソッドが呼び出されるBクラスオブジェクトがwantToVerifyThisIsCalled()モックオブジェクトではないために発生しています。むしろモックオブジェクトをに注入する必要がありますA

AクラスコンストラクターBCandではなくインスタンスを直接D取得し、それに依存してBクラスオブジェクトを作成する方がよいでしょう

次のようにクラスを変更してみてください。

class A {
    private final B b;
    public A(B b) { this.b = b; }

    public void methodToTest() {
        b.wantToVerifyThisIsCalled();
    }
}

class B {
    private final C c;
    private final D d;
    public B(C c, D d) { this.c = c; this.d = d; }

    public void wantToVerifyThisIsCalled() { ... }
}

そして、次のようにテストします。

C c = mock(C.class);
D d = mock(D.class); 
B b = mock(B.class);// Find a way to set private fields (May be provide setters).
A a = new A(b);

a.methodToTest();
verify(b).wantToVerifyThisIsCalled();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Mockito-間接的なプライベートフィールドオブジェクトによって行われたメソッド呼び出しを検証する方法

分類Dev

Mockito-ターゲットクラスメソッド内の別のオブジェクトのメソッド呼び出しの検証

分類Dev

Mockitoは、モックされたオブジェクトのメソッド呼び出しの総数を検証できますか?

分類Dev

Mockito:実際のオブジェクトをプライベート@Autowiredフィールドに挿入する

分類Dev

Mockitoでのメソッド呼び出しでのオブジェクトのインターセプト

分類Dev

Mockito:キャプチャされたオブジェクトのメソッドが呼び出されていることを確認します

分類Dev

Mockito-モックオブジェクトメソッドによって返されたオブジェクトのメソッドをスタブする

分類Dev

Mockitoを使用してプライベートメソッド呼び出しでvoidメソッドをテストする方法

分類Dev

Mockito-実際のオブジェクトをスパイして元のメソッドを呼び出す

分類Dev

Mockitoスパイ-内部クラスメソッドを呼び出すとき、スパイオブジェクトのメソッドをスパイしない

分類Dev

Mockito:メソッド内で作成されたオブジェクトでメソッドが呼び出されたことを確認する方法は?

分類Dev

Mockitoでテスト済みのオブジェクトメソッド呼び出しを検証することは可能ですか?

分類Dev

Mockito-メソッドが呼び出されるたびにモックオブジェクトを返します

分類Dev

Mockito | Androidを使用してプライベートコールバックを呼び出してメソッドを単体テストします

分類Dev

Mockitoを使用して列挙型パラメーターでメソッド呼び出しを検証するにはどうすればよいですか?

分類Dev

mockitoによるモックオブジェクトメソッド呼び出しのコールバックを設定するにはどうすればよいですか?

分類Dev

Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

分類Dev

Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

分類Dev

Java Mockito-参照型パラメーターで呼び出されたメソッドを検証する

分類Dev

Mockito-プライベートメソッドを呼び出すテストメソッド

分類Dev

Mockito:オブジェクトへの参照なしのメソッド呼び出しのインターセプト

分類Dev

Spring BootとMockitoを使用したモックオブジェクトメソッドの呼び出し

分類Dev

Mockito検証メソッドはパラメータを無視して呼び出されます

分類Dev

間接的なメソッド呼び出しを数えるMockito

分類Dev

Mockitoでスパイされたオブジェクトの条件で実際のメソッドを呼び出す方法は?

分類Dev

Mockito検証コンストラクターがメソッドを呼び出す

分類Dev

Mockito検証コンストラクターがメソッドを呼び出す

分類Dev

Mockito:呼び出されたときにvoidメソッドをスタブしてコードを実行する方法

分類Dev

Mockitoを使用して、voidメソッドでコールバックオブジェクトをインターセプトするにはどうすればよいですか?

Related 関連記事

  1. 1

    Mockito-間接的なプライベートフィールドオブジェクトによって行われたメソッド呼び出しを検証する方法

  2. 2

    Mockito-ターゲットクラスメソッド内の別のオブジェクトのメソッド呼び出しの検証

  3. 3

    Mockitoは、モックされたオブジェクトのメソッド呼び出しの総数を検証できますか?

  4. 4

    Mockito:実際のオブジェクトをプライベート@Autowiredフィールドに挿入する

  5. 5

    Mockitoでのメソッド呼び出しでのオブジェクトのインターセプト

  6. 6

    Mockito:キャプチャされたオブジェクトのメソッドが呼び出されていることを確認します

  7. 7

    Mockito-モックオブジェクトメソッドによって返されたオブジェクトのメソッドをスタブする

  8. 8

    Mockitoを使用してプライベートメソッド呼び出しでvoidメソッドをテストする方法

  9. 9

    Mockito-実際のオブジェクトをスパイして元のメソッドを呼び出す

  10. 10

    Mockitoスパイ-内部クラスメソッドを呼び出すとき、スパイオブジェクトのメソッドをスパイしない

  11. 11

    Mockito:メソッド内で作成されたオブジェクトでメソッドが呼び出されたことを確認する方法は?

  12. 12

    Mockitoでテスト済みのオブジェクトメソッド呼び出しを検証することは可能ですか?

  13. 13

    Mockito-メソッドが呼び出されるたびにモックオブジェクトを返します

  14. 14

    Mockito | Androidを使用してプライベートコールバックを呼び出してメソッドを単体テストします

  15. 15

    Mockitoを使用して列挙型パラメーターでメソッド呼び出しを検証するにはどうすればよいですか?

  16. 16

    mockitoによるモックオブジェクトメソッド呼び出しのコールバックを設定するにはどうすればよいですか?

  17. 17

    Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

  18. 18

    Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

  19. 19

    Java Mockito-参照型パラメーターで呼び出されたメソッドを検証する

  20. 20

    Mockito-プライベートメソッドを呼び出すテストメソッド

  21. 21

    Mockito:オブジェクトへの参照なしのメソッド呼び出しのインターセプト

  22. 22

    Spring BootとMockitoを使用したモックオブジェクトメソッドの呼び出し

  23. 23

    Mockito検証メソッドはパラメータを無視して呼び出されます

  24. 24

    間接的なメソッド呼び出しを数えるMockito

  25. 25

    Mockitoでスパイされたオブジェクトの条件で実際のメソッドを呼び出す方法は?

  26. 26

    Mockito検証コンストラクターがメソッドを呼び出す

  27. 27

    Mockito検証コンストラクターがメソッドを呼び出す

  28. 28

    Mockito:呼び出されたときにvoidメソッドをスタブしてコードを実行する方法

  29. 29

    Mockitoを使用して、voidメソッドでコールバックオブジェクトをインターセプトするにはどうすればよいですか?

ホットタグ

アーカイブ