kilogram
Cześć, znacie może jakieś ciekawe poradniki do testów jednostkowych w PHP?
#php #symfony #testowanieoprogramowania #phpunit
2
  • Najlepsze
  • Wszystkie komentarze
Ernest_
Ernest_
4
GeDox
GeDox
Witam wykopki!
Czy testowaliście kiedyś bazę danych w testach jednostkowych/scenariuszach?
Chodzi o testowanie zapisywanych wartości w bazie po wykonaniu konkretnych operacji.
Na przykład koniec rundy - gracz powinien otrzymać hajs i musimy to sprawdzić.
Czy znacie jakieś narzędzie do tego?

PHPUnit
0
  • Najlepsze
  • Wszystkie komentarze
Hepar
@GeDox: W takim wypadku mockujesz funkcję zapisu do bazy danych i nie wykonujesz zapytania tylko sprawdzasz czy poprawny typ danych przyszedł i odpowiednie operacje się wykonały
1
b.....u
b.....u
@GeDox: Jeżeli chcesz sprawdzać bazę to musisz pisać zapytania ręcznie. Jeżeli nie chcesz pisać zapytań ręcznie to rozwiązanie podrzucił @Hepar. Mockowanie funkcji zapisu do bazy i sprawdzanie przed zapisaniem czy przyszło wszystko ok.
1
robdevblog
robdevblog
Cześć,

Jakiś czas temu założyłem bloga o programowaniu (głównie web-development) i szeroko pojętym rozwijaniu samego siebie. Tym razem poruszyłem temat testowania przy użyciu PHPUnit i Dockera.

Ciekaw jestem co myślicie. Jak wy ułatwiacie sobie testowanie?

https://robertkabat.com/powerful-phpunit-and-docker-setup/
0
  • Najlepsze
  • Wszystkie komentarze
aso824
@robdevblog: Meh. Aliasy są nieprzenośne i dev w projekcie musi je sobie ustawiać. Zainteresuj się Makefile, wtedy sobie robisz coś w stylu:

test:
docker-compose exec app vendor/bin/phpunit
I odpalasz z hosta za pomocą make test.

0
JackBauer
Jak wy ułatwiacie sobie testowanie?

Do takich skrótów tworzę po prostu alias lub globalną funkcję w bashu. Jaki jest sens tworzenia skryptu, który praktycznie jest aliasem/wrapperem dockera i później jeszcze do niego tworzyć alias?
0
t.....e
t.....e
Mam pytanie odnośnie pisania testów jednostkowych w Symfony 4.

Czy tak powinno się je pisać? https://pastebin.com/zNGJgdDu (u góry klasa z 2 testami, na dole serwis który testuję)

Czekam na wasze opinie i wskazówki co można zrobić lepiej :)

#php #symfony 4.4 #phpunit
1
  • Najlepsze
  • Wszystkie komentarze
Jurigag
@tylko_na_dole: nie, w testach jednostkowych nie powinno być w ogóle kontenera i frameworka
do tego testowanie repozytoriów w testach jednostkowych mija się z celem, bo głównie będziesz testował mocki, albo czy dobrze działają natywne elementy języka(typu typowanie, wywołania metod, ustawianie propertiesów itp)

takie rzeczy lepiej testować integracyjnie, czy to na realnej bazie, czy na jakimś sqlite albo inmemory jeśli trwa to za długo, ale tego drugiego bym unikał, jeśli trwa
3
aso824
@tylko_na_dole: nie, zapomnij o istnieniu kontenera w 90% przypadków przy pisaniu unitów. Używaj metody setUp aby jednorazowo tworzyć testowaną klasę i mocki bez kopiowania kodu. Trzymaj się standardu nazewnictwa: testFirst_Success() - mieszane dwa style. Dbaj o to żeby test miał nazwę adekwatną do tego co testuje - ten przykład jest dosyć abstrakcyjny, ale już tutaj dopisek Success gryzie; przykładowo gdybyś miał klasę która jedyne co robi to dodaje komentarz, to
2
t.....e
t.....e
Mam pytanie odnośnie pisania testów w Symfony 4 phpunit. Mam problem z mockowianiem w serwisie (ang Service) innych prywatnych serwisów, np. Repozytoriów.

W Symfony 3 robiłem to tak: pisałem mocka repozytorium i podmieniałem go w kontenerze $container->set('repo', $mock); - podmieniałem prawdziwy serwis na mock'a. Wtedy w serwis używał mojego mocka zamiast prawdziwego repo.

W Symfony 4 serwisy są prywatne. W takim razie jak się to robi?

Znalazłem
0
  • Najlepsze
  • Wszystkie komentarze
zakopiak
zakopiak
@tylko_na_dole: Oczywiście, że sam powinieneś tworzyć obiekty, które są przedmiotem testów jednostkowych.

Jak wyciągasz rzeczy z DIC, to nie robisz testów jednostkowych.
3
K.....a
K.....a
@tylko_na_dole: wstrzykujesz moca repo do testowanej klasy
1
H.....s
mirki z
#programowanie i #php #phpunit

chcę podnieść jakość dostarczanego przeze mnie kodu i postanowilem nauczyc sie pisac testy inyegracyjne do tej pory pisałem tylko funkcjonalne/jednostkowe.

Mam pewien problem, próbuje otestowac kod gadający restowo z innym mikroserwisem.
0
  • Najlepsze
  • Wszystkie komentarze
mariecziek
Zarzućcie jakąś dobrą literaturą odnośnie #phpunit. Chciałbym się wreszcie nauczyć pisać testy jednostkowe. Interesuje mnie bardziej literatura - jak mam testować serwisy, kontrollery itd niż jak napisać test, bo to chyba znajdę na tej stronie: https://phpunit.readthedocs.io/en/7.1/

Język obojętnie jaki, tzn. wolałbym po polsku, ale angielski lub rosyjski mi też pasuje.

#php
1
  • Najlepsze
  • Wszystkie komentarze
Lethal_Jelly
Mireczki, --coverage-clover i inne coverage z PHPUnit wykonują się niesamowicie długo, 5h albo więcej, jeszcze nie udało się przeprowadzić tego do końca. O kiego grzyba chodzi? Przecież to nie ma najmniejszego sensu nawet jakby wykonywało się raz na tydzień w nocy. Ilość testów to około 3k - 5-10min bez coverage. (2gb memory-limit ustawione, domyśłny xdebug)

Jakieś pomysły? W innych językach programowania widziałem że takie coś się migusiem wykonuje.

#programowanie #
1
  • Najlepsze
  • Wszystkie komentarze
destyl
Mirkii, znacie jakieś fajne tutoriale do PHPUniti?

#programowanie #php #phpunit
1
  • Najlepsze
  • Wszystkie komentarze
gajowy_marucha
#php #phpunit

Jak najlepiej porównywać obiekty? == przy bardziej skomplikowanych obiektach i relacjach wywala błąd że za dużo zagłębień.

assertEquals chyba się nie nadaje? I dlaczego np assertEquals(3,true) przechodzi?
1
  • Najlepsze
  • Wszystkie komentarze
gajowy_marucha
Warto pchać sie w #codeception czy lepiej czyste #phpunit ?

#pytanie #php i oczywiście #programowanie
1
  • Najlepsze
  • Wszystkie komentarze
gajowy_marucha
Hej mirki spod tagu #programowanie
Jestem ciekaw jak wielu z was używa TDD (tego prawdziwego TDD, nie samych unit testów).
Zacząłem naukę phpunit, miałem zamiar wkręcać się w TDD, ale im więcej o tym czytam tym więcej wątpliwości...Np tu
Jak to jest z tym unit testing u was? Używacie? Jeśli tak to w jakim zakresie?
#php #phpunit #tdd
2
  • Najlepsze
  • Wszystkie komentarze
gajowy_marucha
#php #phpunit #tdd
W końcu po odwlekaniu tematu od dawna zabieram się za phpunit. Zaczynam od oficjalnej dokumentacji, czytam też ten blog.

Zapodacie jeszcze jakieś dobre źródła w temacie? thx.
1
  • Najlepsze
  • Wszystkie komentarze
ghost1511
Uprzedzając wszystkie drwiny i przekomarzania - wiem, że Windows nie nadaje się do #webdev. Niestety póki, co muszę z tym żyć.
A teraz problem:
Odpalam testy jednostkowe w konsoli bash za pomocą:

php phpunit.phar --testsuite "IntegrationTests" -c "D:\xampp_php_5.5.19\htdocs\e-shop\tests\configuration.xml"
Jak widać podałem ścieżkę bezwzględną i wszystko śmiga. Natomiast
1
  • Najlepsze
  • Wszystkie komentarze
ghost1511
Jak zrobić aby mockowana metoda za pierwszym wywołaniem zwróciła false, a za drugim true?
#phpunit #php
3
  • Najlepsze
  • Wszystkie komentarze
saul
Mirki, prośba o wyjaśnienie dlaczego źle używam dataProviders w tym przykładzie: https://gist.github.com/anonymous/88399d23a9c2871f76c3

#phpunit #tdd #programowanie
2
  • Najlepsze
  • Wszystkie komentarze
zergqq2
zergqq2
Treść przeznaczona dla osób powyżej 18 roku życia...
1
  • Najlepsze
  • Wszystkie komentarze
ghost1511
Jak testować settery? Czasami oprócz zwykłego przypisania dajemy tam walidację, jakieś parsowanie. Chcielibyśmy sprawdzić czy wartość się rzeczywiście zmieniła.

#php #phpunit #testyjednostkowe
2
  • Najlepsze
  • Wszystkie komentarze
singollo
#tdd jednak zajebiste - aplikacja stawiana na nowym kompie. Jedno kliknięcie i wiem, gdzie brakuje konfiguracji / połączenia / zewnętrznej biblioteki. Szkoda, że pokrycie testami mam taki z 0.1% kodu ;)

#phpunit #programowanie
1
  • Najlepsze
  • Wszystkie komentarze
singollo
Hahaha! Pokrycie kodu testami 1%! A to pewnie wyłącznie dzięki temu, że łaskawy #phpstorm zaokrąglił w górę ;)

#phpunit #php
2