simplecovがテストによって行が実行されたかどうかを判断する方法を明確にした直後。 end_atがオブジェクト上のActiveRecordの属性ですSimplecovのカバレッジレポートが特定の行を見逃していると思われる
def over?
end_at < Time.zone.now
end
れる:
は、私は次のような方法があります。以下の仕様で行使され
:私はデバッグモードでテストを実行しました
:カバレッジとスペックを実行した後
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の関連ゲッターの使用を含むすべての行が示されています。偶然かもしれないが、ちょっと変わっているようだ。
環境:ルビー1.9.3-P327(MRI)は、3.2.8、0.7.1 simplecov、2.10.0 RSpecのレール。
シンプルコフがそれをカバーしていないと思われる理由についてのアイデアはありますか?
'over? 'に対してfalseを返すテストがありますか?それはヒットしたメソッドを説明することができますが、そのコードのすべての結果がテストされているわけではありません。 –
ありがとう@PaulFioravanti、私も同様に否定的なテストをしており、このカバレッジセッションの一環として実行されました。 –
ここに何があったのか分かりましたか?もしそうなら、共有してください!そうでない場合は、あなたの仕様の全文、すなわち '@ entry'が定義されている場所とテストの' subject 'が何であるかを質問に編集できますか? –