Kilka tricków w testach

Hubert Łępicki

Białystok Ruby Users Group, 2012-02-13

A konkretnie 8

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 5: NullObject

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