問題
JUnit+Jmockitで、DAOクラスのテストケースを作成しているのですが、DAOの異常系ルートの検査をしたくてDriverManager.getConnection()メソッドとConnnection.close()メソッドでExceptionを投げさせたいと考えてます。
ただ、ネット等ではnew Expectationsで指定しているものが散見されますが、それで実際カバレッジをしてみるとうまくスロー出来ておらず困っています。なにか良い方法はないでしょうか。
追記:
先日テストメソッドを作り直してみたところ、DriverManagerメソッドのモック化には成功しました。
ただ、Connectionクラスのモック化は今だ作れていません。
Connectionクラスがインターフェースであることが要因だと推測はしているのですが・・・
ソースコード
Java
1 2@Mocked 3DriverManager DriverManager; 4@Mocked 5Connnection conn; 6 7// テスト対象 8DAO dao = new DAO(); 9 10@Test 11public void DM異常系1(){ 12 new Expectations() {{ 13 DriverManager.getConnection(); result = new ClassNotFoundException(); 14 }}; 15 dao.method(); 16} 17@Test 18public void DM異常系2(){ 19 new Expectations() {{ 20 DriverManager.getConnection(); result = new SQLException(); 21 }}; 22 dao.method(); 23} 24@Test 25public void Conn異常系1(){ 26 new Expectations() {{ 27 conn.close(); result = new SQLException(); 28 }}; 29 dao.method(); 30} 31
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/28 01:08