DAOClass.makeDBConnection()メソッドは、アプリケーションサーバー(Jboss)で構成された(参照を使用して)データソースを返します。このシナリオでは、junitテストケースを実装する必要があります。MockitoでNullPointerExceptionが発生していますか?
Mockitoを使用して、DAOメソッドを次のようにテストしました。データソースを(期待通りに)見つけることができないので、NullPointerExceptionが返されます。どのようにNullPointerExceptionを処理し、私は下のコードで作成している接続を返しますか?または、このシナリオを処理する他の優れたユニットテストフレームワークがありますか?
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://DB:1433;DatabaseName=databasename", "userid", "password");
when(DAOClass.makeDBConnection()).thenReturn(conn);
私は、静的メソッド呼び出しがどのように問題を引き起こしているのか疑問に思っていますか? DAOClassのオブジェクトを作成してmakeDBConnection()メソッドを呼び出しても、NullPointerExceptionがスローされます。 – Kumar
「DAOClassのオブジェクトを作成してmakeDBConnection()メソッドを呼び出しても」というメソッドが静的メソッドであると言うと、それともあなたはそれを変えましたか? –
命名規則に基づいて、インスタンスではなくDAOClassクラス自体で 'makeDBConnection'を呼び出すと仮定したので、静的であると仮定しました。したがって、問題はNullPointerExceptionを回避または抑制することではなく、テストを修正してオブジェクトインスタンスに期待を設定し、それらのオブジェクトインスタンスをテストに挿入することです。 –