当我在Android Studio上运行代码的测试类时,遇到了三种情况。
虽然方法覆盖范围对我来说很简单,但我不理解行覆盖范围和类覆盖范围之间的区别。班级覆盖率如何计算?是否有一个公式考虑了不同的指标?如果我与班级覆盖率无关,该如何提高班级覆盖率?
答案 0 :(得分:0)
课程涵盖范围包括您正在测试的课程包中的所有课程。 如果您在运行测试用例时不使用其他类,那么它将显示这些类的类覆盖率为0%。
假设您在包 app
中有2个类-app
-ClassA.java
-ClassB.java
测试
-app
-ClassATest.java
如果运行ClassATest.java的测试用例,则会得到Class coverage 50%(1/2)
。
由于两个类都在同一个程序包中,因此它也包含了ClassB。
这是有趣的部分,如果您在任何测试用例中创建一个ClassB
对象并再次运行相同的ClassATest
用例,那么您将得到Class coverage 100%(2/2)
,因为您已经使用了两个类
行覆盖率涵盖了实际的代码行。 IntelliJ将所有行分别标记为绿色和红色,分别表示“已覆盖”和“未覆盖”,因此您可以轻松地检查已考虑的行。