Lubię pisać testy jednostkowe. Do tej pory nie miałem takich rzeczy w projektach, a w nowej pracy jest taka okazja i jestem z tego faktu tak zadowolony, że aż się pochwalę na Mirko ( ͡° ͜ʖ ͡°)

#programowanie #testyjednostkowe
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Gdzie widzisz problem? Do zmiennej przypisujesz wartosci, nastepnie odpalasz sobie taki setter i sprawdzasz jakis assert, exception czy cokolwiek chcesz.
  • Odpowiedz
@ghost1511: Jak nie masz gettera to testuj metody, które używają właściwości (settera testujesz pośrednio). Generalnie taki setter z walidacją/parsowaniem to side effect i powinno się tego unikać.
  • Odpowiedz
Bawię się w Test-Driven Development.

Załóżmy, że chcę stworzyć nowy bardzo rozbudowany feature w moim projekcie.

Feature będzie składał się z kilku/kilkunastu klas + jednej głównej (np. SomethingService), która będzie operowała na obiektach z tych kilkunastu klas.

W
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

W takim przypadku mam najpierw stworzyć testy dla tej głównej klasy, czy raczej zacząc od testowania tych mniejszych i dopiero na końcu je zmockować i stworzyć testy dla SomethingService?


@kot1401: co to za TDD skoro już klasy masz, a dopiero teraz myślisz jak rozpisać testy ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@kot1401: wygląda to mniej więcej tak - najpierw piszesz testy funkcjonalne, czyli to co może zrobić użytkownik końcowy. Przykładowo - Adaś wchodzi na wypok.pl, klika zaloguj, gdzie widzi dwa pola formularza, po kliknięciu zostaje zalogowany i powitany wiadomością "Cześć Adaś!"

Wchodzisz na wypok.pl - nie działa, piszesz więc test jednostkowy sprawdzający czy '/' zwraca status 200. Nie zwraca, robisz więc tak długo przy projekcie aż zwróci poprawny status.

Następnie Adaś powinienen kliknąć "zaloguj" - ale tego odnośnika nie ma - więc piszesz test sprawdzający, czy po wejściu na stronę główną widać link zaloguj. Naprawiasz test - ma przechodzić. Potem sprawdzasz czy zaloguj przenosi do poprawnej strony - nie przenosi, piszesz test jednostkowy - naprawiasz, idziesz
  • Odpowiedz
#phpspec vs #phpunit – porównanie podobno bez sensu, bo jedno narzędzie służy do "tworzenia" (designu) kodu, a drugie do jego "testowania" (weryfikowania poprawności działania).

Pytanko: skoro to są narzędzia do dwóch innych rzeczy, jak powinny się uzupełniać?

Macie jakieś ciekawe linki pod ręką? Ewentualnie jak praktykujecie? Bo mam wrażenie, że wiele projektów, w których zaczęło używać phpspeca, przestało używać phpunita zupełnie…

#programowanie #testowanieoprogramowania #
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mk4s: Ogólna opinia jest taka, że PHPSpec de facto zastępuje PHPUnita.

To znaczy, jak ma się dobrą specyfikację, to testy stają się niepotrzebne (bo specyfikacja przewiduje zachowanie kodu).

Kiedy więc użyć którego narzędzia? PHPSpec polecają do nowych projektów i całkowitego TDD (najpierw specyfikacja/test, potem kod, nigdy więcej kodu niż przewiduje
  • Odpowiedz