【发布时间】:2016-07-02 17:15:41
【问题描述】:
我知道我可以使用 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);
}
}
我怎样才能达到“throw new DataSourceException(e)”?我在代码中有很多这样的案例,它们完全破坏了分支覆盖。我正在使用 JaCoCo 进行报道。
【问题讨论】:
-
这看起来很难测试,因为它依赖于静态方法来提供依赖关系,而不是 DI。
标签: java unit-testing junit jacoco