Kilka tricków w testach
Hubert Łępicki
Białystok Ruby Users Group, 2012-02-13
Trick 1: Testy jednostkowe (prawdziwe)
Testy jednostkowe
- testują zachowanie pojedynczego elementu systemu w izolacji
- są szybkoe
- to że przechodzą nic nie znaczy (prawie)
- spec/models to *nie* są testy jednostkowe (prawdopodobnie)
Pisanie testów jednostkowych dla modeli dziedziczących po ActiveRecord::Base
jest trudne
Trick 2: Szybkie testy bez Rails
Trick 3: Wstrzykiwanie zależności
Wstrzykiwanie zależności
Zastąpienie sztywnych powiązań pomiędzy klasami czy modułami
poprzez możliwość ich dynamicznego zastąpienia
Ulepszenie
- Dodajmy kontekst
- Wykorzystajmy klasy standardowe o podobnym zachowaniu
Wstrzykiwanie zależności
Zastąpmy bezpośrednie odwołania do klas zależnych poprzez
zastąpienie referencji MojaKlasaZależna czymś co się daje
podmienić w trakcie wykonania programu.
Trick 4: Użycie OpenStruct dla value objects
(kilka slajdów do tyłu)
Trick 6: Użycie dziedziczenia
Trick 7: Klasy i obiekty ad-hoc
Trick 8: Nadpisywanie metod pojedynczych obiektów
That's all folks!
Hubert Łępicki