当您运行 jest --coverage 时,Branches 列的作用/含义是啥?
Posted
技术标签:
【中文标题】当您运行 jest --coverage 时,Branches 列的作用/含义是啥?【英文标题】:When you run jest --coverage, what does the Branches column do/mean?当您运行 jest --coverage 时,Branches 列的作用/含义是什么? 【发布时间】:2018-09-25 09:18:45 【问题描述】:我进行了测试,这就是我收到的结果:
---------------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
---------------|----------|----------|----------|----------|-------------------|
All files | 100 | 0 | 100 | 100 | |
Search | 100 | 100 | 100 | 100 | |
index.js | 100 | 100 | 100 | 100 | |
SearchResults | 100 | 0 | 100 | 100 | |
index.js | 100 | 0 | 100 | 100 | 4 |
---------------|----------|----------|----------|----------|-------------------|
Test Suites: 2 passed, 2 total
Tests: 5 passed, 5 total
Snapshots: 1 passed, 1 total
Time: 4.678s
我已经改变了一些东西,现在我在 Branch 列上有 0%,但我不知道为了改进它意味着什么。
【问题讨论】:
【参考方案1】:条件语句会创建可能无法执行的代码分支(例如 if/else)。该指标告诉您有多少分支已被执行。
【讨论】:
噢,我明白了!谢谢! 顺便说一句,我投了赞成票,但我只有 6 个声望点。我之前有 8 个,但有人否决了这个问题。在投票显示之前我需要 15 :( 有人会认为这是写在开玩笑文档中的某处,但我什么也没找到... 在没有测试代码分支的情况下执行了 100% 的行有什么意义?假设我们有一个 IF,如果true
分支到 code1
,如果 false
分支到 code2
。如果执行了 100% 行,那么分支 code1
和 code2
都已执行,对吗?那么我们不希望报告中的 %brance 大于 0 吗?
你应该编写测试两个分支的代码,这样你就有 100% 的覆盖率,而不是相反以上是关于当您运行 jest --coverage 时,Branches 列的作用/含义是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Jest + Coverage + VueJs 如何覆盖 vue 方法?
TypeError:state.userInfo 在 Jest 测试中不可迭代