2016-07-02 11 views
-1

私はMockitoを使ってDAOメソッドから例外をスローすることができますが、どのようにしてDAOクラス内のテストカバレッジを適切に取得できますか?JUnit - SQLException、カバレッジを取得する方法?

例:

public static void addUser(int userId, int groupId) 
     throws DataSourceException { 
    String query = "INSERT INTO RUserGroup (userId, groupId) VALUES (?, ?)"; 
    Connection connection = Pool.getInstance().getConnection(); 
    try (PreparedStatement ps = connection.prepareStatement(query);) { 
    // ... 
    } catch (SQLException e) { 
     throw new DataSourceException(e); 
    } finally { 
     Pool.getInstance().returnConnection(connection); 
    } 
} 

は、どのように私は、 "スロー新しいDataSourceException(E)" を達することができますか?私はコード内にこれらのケースがたくさんあり、ブランチカバレッジを完全に破棄しています。私はカバレッジのためにJaCoCoを使用しています。

+2

を参照してください。 –

答えて

0

Pool.getInstance()メソッドを嘲笑しているのは、接続をモックにしたいからです。必要に応じて例外をスローすることができるためです。
Mockitoはあなたにそれをさせません。このような場合のために

、これはむしろDIよりも、依存性を提供するため、静的メソッドへの依存をテストするために、ハードに見えますMocking static methods with Mockito

関連する問題