テストのためにクラスをマックする必要があります。問題は、class(UpdateManager)コンストラクターが5つの引数を取るサードパーティのライブラリを使用していることです。つまり、1つのjava.sql.Connectionとその他は文字列です。そのコンストラクター内で、コンストラクター引数を接続として渡すことにより、1つのクラスinstance(DataSource)を作成します。そのデータソースインスタンスでは、ストアドプロシージャを呼び出すメソッドの1つを呼び出します。私の問題は、モック接続でこれらの5つのパラメーターを渡すことにより、UpdateManagerの部分的なモックを作成しましたが、コンストラクター内でDataSourceのメソッドを呼び出すと、nullポインター例外がスローされます。以下に示すことにより、データソースをスタブする前に
Mockito.doNothing().when(dataSource).update(
Mockito.any(DataSource.class), Mockito.any(ArrayList.class), Mockito.anyInt());
それでも、コンストラクターがDataSourceの新しいインスタンスを作成するたびに、NullPointExceptionがスローされます。このシナリオで、db接続がスタブ例外またはdoNothingをスローするだけでそれをモックする方法を教えてください。MOCKITOを使用しました。これにプロキシパターンを使用するより良い解決策はありますか。
あなたの提案は高く評価されます。