我知道我可以使用Mockito来强制DAO方法的异常抛出,但是如何才能在DAO类中正确地获得测试覆盖?
示例:
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进行报道。
答案 0 :(得分:0)
问题在于模拟rails_composer
方法,因为你希望你的连接是一个模拟,因为你可以让它在必要时抛出异常。
Mockito不允许你这样做。
对于此类情况,请参阅Mocking static methods with Mockito