Złoty plik to po prostu inny sposób zapisu oczekiwanego wyniku testu jednostkowego. Zamiast zapisywać oczekiwane wartości w pliku z testem, zapisuje się ją do pliku. Jaki w tym benefit? Ano taki, że nie trzeba robić tego ręcznie, przy 1 uruchomieniu to co wychodzi z funkcji zapisujemy do pliku, uznajemy za poprawną wartość (trzeba to ofc sprawdzić :) ) i od tego momentu jeżeli output będzie inny niż w naszym "złotym standardzie" test się przewraca, jeżeli zmiany były oczekiwane to aktualizujemy plik, to co się zmieniło można przejrzeć chociaży w gicie.
No ale po co to w ogóle? Przecież łatwiej jest mi zapisać "expected output" zaraz obok testu, jest przecież łatwiej, szybciej i nie trzeba bawić się w jakieś osobne pliki.
To wszystko prawda, aż do momentu w którym nie trzeba przetestować funkcji która zwraca dużą ilość danych, przykładowo:
A że to mikroblog to chcę się pochwalić jedną z pierwszych paczek w Go, którą stworzyłem i uważam za naprawdę przydatną, korzystam z niej w mojej magisterce i wdrażam właśnie w innym projekcie. Paczka na github - goldtest, oraz post, który opisuje jak używać tej paczki (Gdyby readme i example nie były wystarczające)
@xDevil2: Inna wada snapshotów. Dla przykładu mamy test, w którym użyliśmy owej funkcjonalności jest'a. Testujemy endpoint, który zwróci nam prawię taką samą tablicę, tylko doda nowe property. Według mnie aktualne testy nie powinny się wywalić tylko ten nowy, który będzie testował nową funkcjonalność. Więc wadą snapshotów jest to, że często dają nieprawdziwy wynik czy aplikacja działa czy nie. Jednak mimo tego czasami lubie używać snapa, bo łątwiej / szybciej :D
Ostatnio na forum był post matrymonialny w którym ktoś stwierdził że programiści to desperaci. Dziś natrafiłem na to, nic mnie tak dawno nie rozbawiło/
http://www.mobilesoftwarecreate.com/2017/04/11/dlaczego-programista-to-dobry-kandydat-na-meza/
'Tak jak ubierzesz swojego programistę, tak będzie wyglądał. Możesz go zabrać później do fryzjera, stylisty, czy barbera. To od Ciebie zależy, jak będzie wyglądał Twój facet.' Nie no spoko. Poczułem się jak tamagotchi.
Jeżeli ktoś z 3+ letnim doświadczeniem szuka pracy rok to to jest naprawdę dziwne. M...
A ja polecam coś z LaTeXa Jak robisz inżynierkę to prawdopodobnie już korzystałeś z...
A ja polecam coś z LaTeXa :P Jak robisz inżynierkę to prawdopodobnie już korzystałeś...
Zrób CVke po angielsku, nie po polsku Wywal zdjęcie, jest niepotrzebne Wiek też nie...
Zrób CVke po angielsku, nie po polsku Wywal zdjęcie, jest niepotrzebne :P Wiek też n...
Zrób CVke po angielsku, nie po polsku Wywal zdjęcie, jest niepotrzebne :P Wiek też n...
Golden files i testy jednostkowe Złoty plik to po prostu inny sposób zapisu oczekiwa...
Golden files i testy jednostkowe Złoty plik to po prostu inny sposób zapisu oczekiwa...
Golden files i testy jednostkowe Złoty plik to po prostu inny sposób zapisu oczekiwa...
Golden files i testy jednostkowe Złoty plik to po prostu inny sposób zapisu oczekiwa...
@slsy świetny przykład wykorzystania. Sam korzystałem z tego na takich przykłafach jak podałem wyżej i działało w porządku.
@Pinek jak komu wygodnie :D golden files cenie sobie za to że nie trzeba niczego ręcznie tworzyć. Ale też nie jestem etatowym programistą, może z tego punktu widzenia wygląda to inaczej.
@sztadii Przy większych outputach ciężko to sprawdzać, zgadza się. Ja na przykład, gdy mam 1000 lini w golden file do sprawdzenia, sprawdzam wybiórczo. Wiem że funkcja działa poprawnie dla mniejszych danych (inne golden files), to i tutaj powinno być ok. Mi to wystarcza. IMO największy benefit jest w sytuacji gdy coś refaktorujemy i z jakigoś powodu z tych 1000 lini robi ci się 1005, w gicie od razu widać co się zmieniło i można naprawiać.
W przypadku snapshotów z JSX nie wiem jak się do tego zabrać, to jest trochę inny Use Case.