java - Java 中的内部类覆盖率

标签 java junit mockito

我目前正在为类中存在的类(即内部类)编写 Junits。

public class MainClassJob {
    public class UserRowMapper implements RowMapper<MyReport> {
        @Override
        public MyReport mapRow(ResultSet rs, int rowNum) throws SQLException {
            MyReport r = new MyReport();
            r.setDate(rs.getDate("CS_DATE"));
            r.setFirstName(rs.getString("FNAME"));
            r.setFirstName(rs.getString("LNAME"));
            return r;
        }
    }
}

有人可以指导我如何将 UserRowMapper 部分作为 JUnit 覆盖率报告的一部分进行覆盖吗?

最佳答案

另一个答案告诉您如何技术上达到:

Could someone guide me how I am cover the UserRowMapper portion as part of JUnit coverage report.

...只需编写一个以某种方式运行该代码的测试用例。

但请注意:您提出了错误问题。您编写 JUnit 测试代码不是为了获得覆盖范围。您编写代码是为了测试您的生产代码,这样当代码错误时您就会失败,以便您以后可以更改生产代码,因为知道有一个适当的步骤将>验证整体功能仍然正确。

换句话说:您应该问自己如何有意义地测试您的代码。比如:该代码的预期用途是什么?存在哪些特殊情况?什么时候应该抛出异常,......等等。

然后您编写涵盖所有这些方面的测试。

最后,您可能想要收集覆盖率信息,以便了解从测试库获得的覆盖率

含义:不执行任何断言或检查的单元测试,其运行只是为了让您达到 100% 的覆盖率,这样的测试几乎毫无用处。他们告诉您的唯一一件事是:您可以在单元测试中运行该代码,而不会弹出异常。

关于java - Java 中的内部类覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55900337/

相关文章:

java - 如何通过java将数据库字段中的时间分别转换为小时、分钟、秒的整数?

java - 如何以相反的顺序迭代 LinkedList 元素?

java - java中引用对象是如何工作的

JUnit 测试类中未分配 Java 变量

java - 有没有办法在启动 mvn appengine :devserver? 时不运行单元测试

android - 将 JUnit 测试结果和代码覆盖率上传到 Sonar

java - 两个类之间存在多个关联的 Hibernate 问题

java - 模拟类的所有实例

junit - 如何在为静态方法编写junit时从静态方法模拟实例方法调用?

java - 使用mockito、ioC和 Autowiring 测试服务