代码覆盖率是什么?
代码覆盖率是通过运行单元测试并记录哪些代码行被执行了,然后将其与总代码行数进行比较得出的。例如,如果代码中有100行,其中80行被测试到,那么代码覆盖率为80%。
代码覆盖率不是证明代码质量的完美指标,因为它不能保证所有代码都是正确的,也不能保证所有代码都被恰当地测试。但它是一个有用的工具,可以帮助开发人员确定未被测试的代码,并识别测试用例是否足够全面。
单元测试覆盖率只能代表被测代码的类、方法、执行语句、代码分直、条件子表达式等是否被执行,但是并不能代表这些代码是否正确地执行并返回了正确地结果。——所以之看单元测试覆盖率不看单元测试的有效性是没有任何意义得。
如何避免无效的单元测试?
明确测试目的:在测试用例编写之前,确保它们是必要的并且能够有效地验证代码。比如要测试一个函数,它返回某个数组中最大值的索引,那么测试用例的目的就是验证该函数是否正确返回最大值的索引。
保持测试独立:单元测试应该是独立,不依赖于其他测试用例,也不依赖于外部环境。比如在测试某个函数时,可以确保不依赖于其他函数或任何外部状态。
关注代码边界:需要特别关注代码地边界情况,例如边界值、边界条件等。如果要测试一个数组排序函数,则应该特别关注边界情况,例如数组为空,数组只有一个元素等。
编写多种测试用例:编写多种不同类型的测试用例,以确保代码在不同情况下的正确性。在测试某个函数时,可以编写不同类型的测试用例,例如:测试输入数组为升序,降序和无序。
避免重复测试:避免编写重复的测试用例,以节省时间并保证测试用例的有效性。在测试一个数组排序函数时,不必测试两次同样的数组,只需测试一次即可。
跟踪代码变更:例如,如果更改了代码,则应定期更新测试用例,以确保它们仍然有效。
推荐阅读: