就在对 simplecov 如何确定一条线是否已通过测试进行了一些澄清之后。
我有以下方法:
def over?
end_at < Time.zone.now
end
其中 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
运行覆盖率的规范后,它显示以下结果:
我已经在调试模式下运行了测试,并在此行设置了一个断点,并确认规范确实达到了它。
这并不仅仅局限于此方法中的这一行,包括使用 ActiveRecord 关联的 getter 的每一行都显示为未涵盖。可能是巧合,但似乎有点奇怪。
环境:ruby 1.9.3-p327 (mri)、rails 3.2.8、simplecov 0.7.1、rspec 2.10.0。
关于为什么 simplecov 认为它没有被涵盖的任何想法?