0

オブジェクトのパブリックで非静的なメソッドをモックする必要があります。

問題は、このオブジェクトがコード内で直接作成されるため、モック オブジェクトを作成できないことです。

PowerMockito.spy() と PowerMockito.when(...) を使用してクラスをスパイしようとしましたが、機能しませんでした (おそらく、PowerMockito.when は静的メソッドとプライベート メソッドでのみ機能するためです)。

たとえば、これをテストする必要があるとします。

... myClass anObject = new myClass(); anObject.aMethod();
...

anObject.aMethod() の呼び出しをモックするにはどうすればよいですか??

私はmyClassをスパイする必要があると思いますが、うまくいきませんでした..

4

2 に答える 2

1

依存性注入を使用するようにコードをリファクタリングすることをお勧めします。

しかし、グーグルで簡単に調べてみると、PowerMockito でコンストラクターを実際にスタブできることがわかります。whenNew については javadoc を参照してください。

PowerMockito を使用したことがないので保証できませんが、これにより、コンストラクター呼び出しでモック オブジェクトを返すことができるようになります。

于 2011-02-02T13:08:08.760 に答える
1

依存性注入を使用します。

最も単純なケースでは、ファクトリ オブジェクトをオブジェクトを作成するメソッドに渡し、そのファクトリをスパイします。

これを行う別の方法は、ファクトリをオブジェクトのコンストラクターに渡すことです。

于 2011-02-02T12:41:07.397 に答える