unit-testing - block 覆盖和分支覆盖有什么区别?

标签 unit-testing testing code-coverage metrics code-metrics

block 覆盖率和分支覆盖率是一样的,相似的还是完全不同的?

解释分支覆盖范围的顶部 Google 链接:http://www.tutorialspoint.com/software_testing_dictionary/branch_testing.htm

最佳答案

block 覆盖率(或“基本 block 覆盖率”)和分支覆盖率是两种不同的代码覆盖率度量。 block 覆盖计算以分支为界的 block 。分支覆盖率计算实际分支。

这段代码片段

puts "I'm block 1"
if condition
  puts "I'm block 2"
else
  puts "I'm block 3"
end
puts "I'm block 4"

有四个 block 但只有两个分支,if/else 的两侧。如果此代码仅通过一个测试进行测试,并且 condition 在该测试中为真,

  • block 1、2 和 4 将被覆盖,因此 block 覆盖率为 75%
  • if 的真分支会被覆盖,if 的假分支不会被覆盖,所以分支覆盖率为 50%

关于unit-testing - block 覆盖和分支覆盖有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844439/

相关文章:

node.js - 在 package.json 中使用 Jest --testNamePattern=<regex> 或 -t 选项

code-coverage - 运行 `cover -test` 时如何从子进程收集覆盖率,否则不收集? (开发::封面)

c# - 在不使用 InlineAutoData 的情况下使用 InlineAutoData 时的额外测试运行

javascript - QUnit 不会运行测试

python - unittest Mock - 补丁返回值

ruby-on-rails - Rspec 中的动态期望

php - 在 Laravel 中测试时,数据库事务不会阻止 id 递增

php - PHPUnit 的代码覆盖率为 0%

python - GitHub 操作 : which shell for codecov-bash on Windows?

c# - UnitTesting 非返回方法 c#