したがって、A、B、C の 3 つのクラスがあります。 class の単体テストを作成する必要がありますA
。
class A extends B{
//fields go here ...
public A(String string, ...){
super.(string,...);
}
//other methods here ...
}
class B{
C stuff;
//other stuff
}
重要C
なリソース (JDBC や ssh セッションなど) も同様です。当然、私は嘲笑してC
います。どうすればモックできますかB
。ImagineB
には、それを拡張する多くの子クラスがあります。
私の主な問題は、それA
が呼び出すことsuper.(...)
です。A
テストのためだけにメソッドを注入したくありません。私にとって、それは悪いデザインです。親を嘲笑する方法はありますか?
たとえば、との両方が の子になるclass MockB extends B{...}
ためMockB obj = new A();
、これは機能しません。MockB
A
B