为什么 'end' & 'else' 语句在 rspec 测试期间不计入代码覆盖率?

Why are 'end' & 'else' statement not counted in code coverage during rspec testing?

我正在使用 simplecov gem 查看测试覆盖率。在下图中,我可以看到两个语句 elseend 是白色的。
这些行不计入测试覆盖率吗?如果是,可以做些什么来包含此类声明?

这些不是代码行。你不能测试它们,所以 simplecov 会忽略它们。

你的 if 已被覆盖,因此我们假设结束已被覆盖。 else 也没有被覆盖,但我们只关心该分支内的代码是否被覆盖。

SimpleCov 应将未经测试的代码标为红线,将不可测试的代码标为灰色。上面的代码有100%的测试覆盖率,不用担心。