Wpis z mikrobloga

#nodejs #webdev #mocha

Wykopki, pytanko odnośnie testów backendu Node.js przy użyciu Mocha. Raczkuje w tym temacie więc pytam:

Chcę przetestować pewną podstronę mojego serwisu. brzmi ona /api/check/:id i teraz:

Gdy podamy poprawny ID to stronka zwróci 200 i zaktualizuje zmienną "checkedAt" tego modelu na datę aktualną ;
Gdy podamy niepoprawny ID to stronka zwróci 404.

Pytanko jak powinienem to ułożyć w testach, mam dwie koncepcje:

a) Robię jedno "describe" na całą ścieżkę a każdy "it" odpowiada sprawdzenie jednego wariantu ze wszystkimi jego czynnikami pochodnymi (tu: strona zwraca 200, aktualizacja wpisu bazy danych):

http://pastebin.com/T832Ev0L

b) Robię kolejnę describe na każdy wariant a każdy "it" sprawdza jeden czynnik pochodny:

http://pastebin.com/tpfDi2HG

Który wariant powinienem wybrać i dlaczego?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Chcę przetestować pewną podstronę mojego serwisu. brzmi ona /api/check/:id i teraz:


@larvaexotech: To raczej brzmi jak testy integracyjne a nie jednostkowe. W jednostkowych powinieneś testować tylko jakąś metodę.
  • Odpowiedz
@Marmite: Masz rację. Taki schemat działania stosuje do prostych projektów gdzie zasadniczo zależy mi jedynie na tym żeby każda końcówka API zrobiła to czego od niej oczekuje bez testowania każdej metody niezależnie.

Stosowałem coś takiego w prostych projektach PHP i teraz chciałem tego samego spróbować w Node.js

Niemniej jednak problem pozostaje taki sam, bo nawet gdyby to były testy jednostkowe, to też może być metoda która przyjmuje jakiś input (parametry)
  • Odpowiedz
@larvaexotech: Prawdę mówią to chyba brzmi jak szukanie problemów tam gdzie ich nie ma :P obie wersje wydają się być spoko, co prawda jest szkoła mówiąca, że nie powinno się robić więcej niż jednego asserta na test, ale to chyba kwestia po prostu umówionej konwencji. Pisz tak żeby ci było wygodnie, żebyś miał to logicznie pogrupowane i żeby pokryć kod. I tyle.
  • Odpowiedz