クラスの特定のメソッドの単体テストを作成しようとしています - foo
。bar
このクラスは、外部 jar 内にある別のクラス - を拡張します。
問題は、このベースbar
には、実際には呼び出したくないデータベースと対話するメソッドがいくつかあることです。
この基本クラス foo のモックを作成しようとしましたが、うまくいきません。モックするのではなく、実際にデータベースに接続しようとします。
@Test
public void testSomeMethod(){
bar b= mock(bar.class);
when(b.calldatabase()).thenReturn(resultset); //calldatabse is in base class bar
//create expected object, and set properties here
Results expected = new Results();
expectedResult = foo.MethodUnderTest(); // this has call to calldatabase and then uses resultset mocked above
assert()...
}
MockitoでJUnit4を使用しています。
このように、基本クラスのメソッドをモックし、実際に派生クラスをテストすることは本当に可能ですか? そうでない場合、どうすればこれをテストできますか?
必要に応じて基本クラスを変更し、必要に応じて他のツール/ライブラリを使用できます。