javascript - 在 Jest 中添加测试用例如何降低代码覆盖率?
问题描述
我刚刚使用 Jest 测试套件遇到了一个奇怪的情况。我没有修改代码,但我添加了一个测试。
前:
mylibrary.js | 95.65 | 89.66 | 100 | 95.65 | 54-56,84
---------------|---------|----------|---------|---------|-------------------
Test Suites: 3 passed, 3 total
Tests: 22 passed, 22 total
后:
mylibrary.js | 95.65 | 89.29 | 100 | 95.65 | 54-56,84
---------------|---------|----------|---------|---------|-------------------
Test Suites: 3 passed, 3 total
Tests: 23 passed, 23 total
我无法共享代码,但我想问:在 Jest 中,当我添加测试调用时,测试覆盖率怎么可能会降低?
我期待的结果是增加了 2 行覆盖范围。
使用 Jest 27.1.0。这是一个非常简单的库,没有依赖项。
(我已经重新添加/删除了测试用例,以验证这不是由其他因素引起的一些怪异)。
解决方案
您statements
的functions
、 和lines
看起来相同,而您的branch
略有下降。看起来您的新测试仅涵盖了某些分支逻辑的一种场景,而没有测试逻辑的替代场景。
通常,可以通过不覆盖所有 、 或 路径来添加测试并statements
降低functions
覆盖率。在这种情况下,您添加的测试似乎并未涵盖所有路径。lines
branch
branch
检查Uncovered Line #s
列中的黄色行号。
推荐阅读
- python - 随机模块方法 Python
- python - 合并两个用冒号分隔的文件
- mysql - 如何在 MYSQL 中有空值的 GROUP_CONCAT 将字段从 LEFT JOIN?
- python - 如何在 python 中修复此错误“与 MySQL 数据库的连接错误”
- python - 如何检查类方法是否返回自我?
- android - Flutter:如何实时监听权限
- tensorflow - 带有功能 API 的 convLSTM2d
- python - 如何在具有不同图像大小的预训练 ResNet50 上进行迁移学习
- reactjs - 如何管理 React 路由器和 redux 之间的状态
- button - 放置邮件的文本字段(必填)并提交到另一个页面