Kat*_*ins 7 ruby rspec code-coverage ruby-on-rails
在对simplecov如何确定一条线是否已经通过测试进行了一些澄清之后.
我有以下方法:
def over?
end_at < Time.zone.now
end
Run Code Online (Sandbox Code Playgroud)
其中end_at是对象的ActiveRecord属性.
在以下规范中执行了哪些操作:
describe CalendarEntry do
it 'can determine that an event has ended' do
@entry.end_at = 1.day.ago
@entry.over?.should be_true
end
end
Run Code Online (Sandbox Code Playgroud)
运行带有coverage的规范后,它会显示以下结果:

我已经在调试模式下运行测试,并在此行上有一个断点,并确认该规范确实正在触及它.
在此方法中,这不仅仅与此行隔离,包含使用ActiveRecord关联的getter的每一行都显示为未覆盖.可能是巧合,但似乎有点奇怪.
环境:ruby 1.9.3-p327(mri),rails 3.2.8,simplecov 0.7.1,rspec 2.10.0.
关于为什么simplecov认为它没有被涵盖的任何想法?
好的,所以我添加了与在 Windows 上运行的 JRuby 相同的问题。答案实际上是向我提示的,如果不在调试模式下运行,Simplecov 可能会错过一些行。
(j)ruby --debug -S rspec spec
Run Code Online (Sandbox Code Playgroud)
使用 --debug 选项,它确实起作用了,并且我按预期恢复了 100% 的覆盖率。
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |