22 lipca 2013

Trochę o Unit Testach

Zbiorczy zestaw linków, traktujących o testach jednostkowych i trochę moich notatek.

http://www.youtube.com/watch?v=RlfLCWKxHJ0
    Zastosowanie dependeny injection oraz prawo Demeter w testowaniu.

http://www.youtube.com/watch?v=wEhu57pih5w
    Testy jednostkowy pozwalają nam wykryć błędy w działaniu małych komponentów. Dają przewagę nad testami systemowymi, pozwalając szybko zorientować się gdzie leży przyczyna błędu. Całościowe test, też mogą to wykazać, ale znacznie trudniej jest ustalić, gdzie leży usterka, albo co jest jej przyczyną.
    Mieszanie mechanizmu tworzenie obiektów z business logic sprawia, że bardzo trudno napisać dobry test. Nie można tworzyć obiektów w izolacji. Jedyne co można tworzyć to cały łańcuch zależnych od siebie obiektów. Nie mamy wtedy już do czynienia z testami jednostkowymi (np. test silnika), tylko z testami systemowymi (test działania całego samochodu).

http://blog.stevensanderson.com/2009/08/24/writing-great-unit-tests-best-and-worst-practises/
    Tutaj autor, przestawia TDD jako proces projektowania (i nie jest procesem testowania). TDD i testy jednostkowe pomagają dostarczyć komponenty oprogramowania, które indywidualnie zachowują się zgodnie z założeniami projektowymi. Jedynym odstępstwem, w którym testy jednostkowe naprawdę potrafią wykryć błędy jest proces refactoringu. Trochę inna wizja niż ta prezentowana na Google Talks.

Ciekawy pattern do nazywania testów np. ProductPurchaseAction_IfStockIsZero_RendersOutOfStockView()
  • Subject
  • Scenario
  • Result

http://www.exubero.com/junit/antipatterns.html
    Mowa o antywzorcach, jakie najczęściej pojawiają się podczas tworzenia testów jednostkowych. "Unit testing is the first of a long series of steps to verify that the code works correctly."

Brak komentarzy:

Prześlij komentarz