java - 什么定义了 Intellij 代码覆盖测试中的“部分”覆盖?
问题描述
我正在使用“跟踪”(使用默认的 Intellij 覆盖工具)在 IntelliJ IDEA 中运行具有代码覆盖率的 Java 单元测试。即使使用了两个分支,我也有一个 if 语句总是报告“部分覆盖”:
其他 if 语句是绿色的,其中两条路径都经过测试,我尝试使用方法调用的结果提取变量。谁能解释为什么这条线被报告为部分而不是完整的?
解决方案
如果您有复合条件并且并非所有条款都已执行,则会发生部分承保。例如
if (isEmptyString(location) && isEmptyString(name)) {
return false;
}
如果在所有测试用例中isEmptyString(location)
返回,则永远不会执行。因此“部分覆盖”。false
isEmptyString(name)
您的代码中不是这种情况,因此我认为这是覆盖工具中的错误。
推荐阅读
- go - Go ticker 示例不选择“完成”案例?
- php - Symfony 4. 通过 LDAP 授权。如何自定义AuthenticationProvider?
- node.js - 在 Node js 应用程序中导入 Mongoose 模式无法正常工作
- java - 如何在相机屏幕上显示图像
- r - 删除数据框中行名中带有点的行,保留其余行
- algorithm - 寻找最短路径的 Dijkstra 算法
- python-3.x - Python Tkinter 如何在 for 循环中更新文本小部件?
- parsing - 使用 jsoup 解析特定的 p 值
- oop - 创建 C++ 单链表实现
- xml - 将 XML 转换为我可以放入 xls 单元格的单个字符串