我想运行原始SQL查询,如下所示:
ActiveRecord::Base.connection.execute(some_query);
Run Code Online (Sandbox Code Playgroud)
我可以捕获执行查询时发生的任何错误吗?如果有,怎么样?什么execute回报?它没有在文档中说明.
干杯
在对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认为它没有被涵盖的任何想法?