Zasada TDD FIRST
Nie rozumiem, jakZasada TDD FIRST nie jest przestrzegany w następującym kodzie.
Oto moje notatki na temat zasady FIRST:
Szybki: szybko uruchom testy (podzbiór) (ponieważ będziesz je uruchamiał przez cały czas)Niezależny: żadne testy nie zależą od innych, więc można uruchomić dowolny podzbiór w dowolnej kolejnościPowtarzalne: uruchom N razy, uzyskaj ten sam wynik (aby pomóc w wyizolowaniu błędów i włączeniu automatyzacji)Samokontrola: test może automatycznie wykryć, czy minął (brak sprawdzania wyników przez człowieka)Aktualny: napisane mniej więcej w tym samym czasie, co testowany kod (z TDD, napisany pierwszy!)Pytanie quizowe:
Sally chce, aby jej strona internetowa miała specjalny układ w pierwszy wtorek każdego miesiąca. Ma następujący kontroler i kod testowy:
# HomeController
def index
if Time.now.tuesday?
render 'special_index'
else
render 'index'
end
end
# HomeControllerSpec
it "should render special template on Tuesdays" do
get 'index'
if Time.now.tuesday?
response.should render_template('special_index')
else
response.should render_template('index')
end
end
Jakiej zasady FIRST nie przestrzega się?
SzybkiNiezależnyPowtarzalneSamokontrolaAktualnyNie jestem pewien, która zasada FIRST nie jest przestrzegana:
Szybki: Kod wydaje się być szybki, ponieważ nie ma nic skomplikowanego w jego testach.Niezależny: Test nie zależy od innych testów.Powtarzalne: Test uzyska taki sam wynik za każdym razem.'special_index'
jeśli jest wtorek i'index'
jeśli nie jest wtorek.Samokontrola: Test może automatycznie wykryć, czy minął.Aktualny: Zarówno kod, jak i kod testowy są prezentowane w tym samym czasie.wybieramAktualny na quizie, ponieważ kod testu został przedstawiony po kodzie kontrolera. Ale pytanie było błędne i patrząc wstecz, nie był to dobry wybór. Nie jestem pewien, która zasada FIRST nie jest przestrzegana tutaj.