Zaraz po wyjaśnieniu, jak simplecov określa, czy linia została wykonana przez test.Raport o pokryciu Simplecov wydaje się brakować niektórych linii
I mają następujące metody:
def over?
end_at < Time.zone.now
end
w którym end_at jest atrybutem ActiveRecord na obiekcie.
Która jest sprawowana w poniższej specyfikacji:
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
Po uruchomieniu spec z ubezpieczenia, to pokazuje następujący wynik:
Zabrakło mi test w trybie debugowania z punktem przełomowym w tej linii i potwierdził, że specyfikacja rzeczywiście go uderza.
To nie jest izolowane tylko dla tego wiersza w tej metodzie, każda linia zawierająca użycie pobierającego skojarzonego z ActiveRecord jest pokazana jako nieobjęta. Może być zbieg okoliczności, ale wydaje się nieco dziwne.
Środowisko: rubin 1.9.3-p327 (mri), tory 3.2.8, simplecov 0.7.1, rspec 2.10.0.
Jakieś pomysły na to, dlaczego Simplecov sądzi, że nie są objęte gwarancją?
Czy masz test, który zwróci wartość false dla 'over?'? To może wyjaśnić metodę trafienia, ale nie wszystkie wyniki dla testowanego kodu. –
Dzięki @PaulFioravanti, mam również negatywny test i został uruchomiony w ramach tej sesji pokrycia. –
Czy byłeś w stanie dowiedzieć się, jaki był problem? Jeśli tak, proszę udostępnij! Jeśli nie, czy byłbyś w stanie edytować swoje pytanie, aby zawrzeć pełny tekst specyfikacji, tj. Gdzie zdefiniowano '@ wpis' i jakie jest" temat "testu. –