私はMockitoにはとても新しいので、解決策が見つからない状況があります。私はMockitoを使ってテストしたいメソッドがあります。問題は、このメソッドの内部にオブジェクトが作成されていて、そのオブジェクトには私が嘲笑したい機能があることです。外部からアクセスできないオブジェクトに属するメソッドを偵察するには?
だから、たとえば、ここに私の問題を示して、小さなサンプルコードです:MyTestFunction()
でそう
public class ClassA {
public functionDoingDBStuff() {
//...........
}
}
public class ClassB {
final ClassA classAObj = null;
public functionXYZ() {
classAObj = new ClassA();
classAObj.functionDoingDBStuff();
}
}
@Test
MyTestFunction() {
ClassB classBObj = new ClassB();
// How can I access and mock functionDoingDBStuff() here?
}
、私はfunctionXYZ()
をテストしたいのですが、functionXYZ()
内部で呼び出される関数functionDoingDBStuff()
をモック。モックでは、私がテストに必要な特定の結果を返すことを意味します。しかし、functionDoingDBStuff()
はfunctionXYZ()
の内部に作成されたオブジェクトに属しているので、私はMockitoにMyTestFunction()
からアクセスするようにどのように伝えることができるのか分かりません。私はあなたが私の言いたいことを理解できることを願っています。
これは、オブジェクトが依存関係自体を作成してはならない理由です。代わりに、[dependency inversion](https://en.wikipedia.org/wiki/Dependency_inversion_principle)を使用してください。 – Seelenvirtuose
'ClassA'を嘲笑しない*。注[単体テスト](http://martinfowler.com/bliki/UnitTest.html)では、嘲笑は必要ありません。 –