37

私は方法を持っています:

void putObject(<T extends BaseEntity> param)

このメソッドをモックするテストがありますが、そのメソッドが特定のクラスのパラメーターで呼び出されたことを確認するにはどうすればよいでしょうか? そのような方法でそれをやろうとしました:

verify(foo).putObject((SomeClass)anyObject());
------
verify(foo).putObject(any(SomeClass.class));
------
ArgumentCaptor<SomeClass> parameter = ArgumentCaptor
            .forClass(SomeClass.class);
verify(foo).putObject(parametr);

で 2 番目のバリアントのみが機能しますが、パラメーターany()は機能しません。t check class ofそのメソッドが特定のクラスのオブジェクトを取得することを確認できる場合はどうなりますか?

4

2 に答える 2

79

ユーザーマッチャーのドキュメント isA()メソッド。

public static <T> T isA(java.lang.Class<T> clazz)

それはあなたの問題を解決します。

verify(foo).putObject(isA(SomeClass.class));

于 2013-02-08T12:12:35.610 に答える