Testy, jak dobrze testować?

Odpowiedz Nowy wątek
2017-10-10 22:45
testyjak
0

Witam wszystkich
Tak sobie piszę różne rzeczy, piszę sobie do nich testy i wzięło mnie na trochę przemyśleń, żeby to poszerzyć swoją wiedzę. Liczę, że bardziej doświadczone osoby pomogą.

  1. Do tej pory wszystkie testy robiłem w PHPUnicie, czy powinienem poznać coś innego, aby robić to lepiej, czy PHPUnit jest wystarczający?
  2. Często mam tak, że klasa jest długa, zawiera wiele metod, które np. wywoływane są z jednej głównej. Jak podejść do testów? Robić dla każdej tej metody osobny test, czy też postarać się to wszystko przetestować w obrębie jednej metody na kilku przypadkach?
  3. Co powinienem testować dla danej metody? Na przykład działanie z dobrymi danymi jak i działanie z danymi które mają zwrócić błąd? Czy jeszcze jakieś inne wartości?
  4. Czy dana metoda powinna odpowiadać tylko za jeden test? To znaczy... Na przykład w każdej metodzie muszę stworzyć klasę aby wywołać jej metodę i przygotować jakieś dane. Czy poprawnym jest umieszczenie tego np. w metodzie setUp(), czy też każda funkcja powinna odpowiadać w całości za dany test? Słyszałem i takie i takie teorie, i sam nie wiem.
  5. Czasem mam sytuację, że nie mogę niczego przetestować, bo np. trzeba by gdzieś coś zmienić, zmockować itd. Powinienem zmieniać lekko kod pod testy, aby np. dać możliwość wprowadzenia jakiejś właściwości? Czy nie, czy testy mają być ściśle dostosowane do kodu?

To chyba wszystko z takich bieżących problemów. Będę wdzięczny za rady bardziej doświadczonych osób.
Pozdrawiam

Pozostało 580 znaków

2017-10-11 22:45
0

@MrBean Bean: chyba nie rozumiem, co masz dokładnie na myśli. Testowanie pustych i nullowych parametrów zalicza się do złych albo generujących wyjątki dane. Nie rozumiem jak miałoby wyglądać takie coś jak IsArgumentPassedToMethod.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2017-10-12 20:10
testyjak
0

@Desu dzięki bardzo, chętnie się tym zainteresuję.

Pozostało 580 znaków

2017-10-14 14:18
testyjak
0

Panowie, a jeszcze co do samego PHPUnita - jak testujecie efekt na stronach? Po prostu CURLem? Czy jakimś Guzzle np.? Czy coś dedykowanego jest?
Bo robię małą aplikację bez frameworka i zacząłem się zastanawiać jak to przetestować... W Laravelu jest po prostu $this->get i samo to odpytuje stronę, nigdy nie sprawdzałem jak.

Podobne pytanie o bazę danych, jak ją testujecie, aby nie naśmiecić rekordów za każdym razem? Laravel ma traita chyba DatabaseTransaction i wszystko co się wykona po jego wykonaniu nie trafi do bazy. To dobra praktyka w ogóle? Jak to robić bez frameworka?

Pozostało 580 znaków

2017-10-14 15:26
0

html możesz testować na różny sposób, html, który nie jest generowany przez js (a zakładam, ze o taki ci chodzi) możesz testować w laravelu, masz nawet metody na akcje wywoływane na froncie.

Pozostało 580 znaków

2017-10-14 17:16
testyjak
0

@mr_jaro no a co właśnie gdy nie mam Laravela tylko piszę coś mniejszego, bez frameworków? Próbować np. samym Guzzle albo zwykłym CURLem? Czy PHPUnit ma coś do tego o czym nie wiem?

Pozostało 580 znaków

2017-10-14 20:05
0

No Guzzlem na pewno będzie Ci wygodniej. Przy okazji to jeden z najpopularniejszych klientów HTTP dla PHP.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę