W tym artykule skupimy się na jednym podmiotu cyklu życia dewelopera: testowanie. Kod testowy jest bardzo przydatną funkcją dla każdego programisty. Umożliwia znalezienie i naprawianie błędów przed wdrożeniem kodu w produkcji. Chociaż istnieje wiele sposobów i funkcji do wdrożenia testowania kodu, ten artykuł skupi się na pakiecie Go Assert.
Rozpoczęcie testów
Zanim zagłębimy się w pracę z pakietem zeznań, dowiedzmy się, jak zacząć od testowania.
Pierwszym krokiem jest wiedzieć, co chcesz przetestować. Może to być prosta funkcja dla zbioru metod.
Weźmy prosty przykładowy program, który po prostu mnoży jego dane wejściowe przez 10.
Zacznij od utworzenia katalogu do przechowywania kodu.
Testowanie MKIDRPrzejdź do katalogu i utwórz plik GO zawierający program. Dla uproszczenia nazwiemy ten plik główny.Iść
Testowanie CDEdytuj plik z edytorem tekstu i utwórz swój program. Aby śledzić ten samouczek, możesz dodać kod, jak pokazano poniżej:
Pakiet MainW przykładowym programie mamy funkcję, która przyjmuje wejście liczb całkowitych i zwraca liczbę całkowitą pomnożoną przez 10.
Zapisz i zamknij plik.
Następnym krokiem jest utworzenie testu dla powyższego programu. Aby to zrobić, musimy utworzyć plik w tym samym katalogu z sufiksem _testu. To informuje moduł testowy, że ten plik zawiera pakiet testowy programu w katalogu.
Ponieważ chcemy stworzyć test dla głównego.Program Go, zadzwonimy do pliku testowego jako:
Touch Main_Test.IśćW pliku testowym możemy tworzyć instrukcje testowe dla naszego programu.
Ponieważ chcemy użyć pakietu Użyj pakietu Assert, musimy zaimportować test i pakiet Assert.
Możesz dołączyć import jako:
pakietNastępnie utwórz funkcję testową, aby przetestować program główny. Możemy tworzyć instrukcje testowe, jak pokazano:
Pakiet MainW powyższym programie tworzymy funkcję testową, która przeprowadza testowanie.T obiekt. Framework testowania pozwala funkcji zapisywać niepowodzenie do odpowiedniej lokalizacji pod warunkiem, że ten obiekt.
Wewnątrz funkcji używamy pakietu Assert, aby sprawdzić, czy funkcja zwraca wynik równy dostarczonym parametry. Jeśli funkcja mnożenia przyjmuje liczbę całkowitą 10 i zwraca wartość równą 100, wówczas przechodzi test.
Zapisz plik testowy i uruchom test za pomocą polecenia:
Przejdź testPowyższe polecenie powinno wziąć plik testowy i uruchomić skonfigurowane testy.
Przykładem jest to, jak pokazano:
=== Uruchom testmultiplyJak zauważysz z powyższego wyjścia, funkcja przechodzi test.
Zmieńmy wartość funkcji, aby zilustrować instrukcję niepowodzenia. Na przykład zmień trzeci parametr funkcji testowej na nieprawidłową wartość. Na przykład:
FUNKSTESTMULTY (T *Testowanie.T)W tym przykładzie mówimy programowi, że jeśli funkcja nie zwróci 10, wówczas funkcja się nie powiedzie.
Uwaga: Pamiętaj, że funkcja testowania jest nieprawidłowa.
Jeśli przeprowadzimy test, powinniśmy uzyskać porażkę jako:
=== Uruchom testmultiplyPowyższe wyjście ilustruje nieudany test.
Golang asert
Teraz, gdy mamy podstawy testowania z drogi, przeniejmy naszą koncentrację na pakiet Assert. W naszym poprzednim przykładzie zastosowaliśmy metodę równej, aby sprawdzić, czy funkcja zwraca wartość oczekiwaną. Jednak pakiet Assert zapewnia mnóstwo narzędzi i metod testowania, aby ułatwić testowanie kodu.
Zbadajmy kilka kolejnych przykładów ilustrujących funkcjonalność pakietu Assert.
Golang Test Nierówność
Możemy użyć pakietu Assert do sprawdzenia nierówności za pomocą metody Notequal (). Składnia funkcji jest jak pokazana:
FUNC NOTEqual (T TestingT, oczekiwany, rzeczywisty interfejs , msgandargs… interfejs ) bool
Funkcja wymaga t.obiekt testowy, oczekiwana i faktyczna wartość oraz komunikat wydruku. Sprawdza, czy oczekiwana i faktyczna wartość nie jest równa. Jeśli to prawda, test mija, w przeciwnym razie zawiedzie.
Przykładem jest jak pokazano:
FUNCESTNOTEQUAL (TESTOWANIE T *.T)Kod powyżej sprawdza, czy wartości nie są równe. Przykładem jest to, jak pokazano:
=== Uruchom TestNotequalGolang Test kod stanu HTTP
Możemy użyć metody httpstatuscode (), aby sprawdzić, czy moduł obsługi zwraca określony kod stanu.
Załóżmy, że mamy serwer HTTP, że jeśli złożymy żądanie kodu stanu zwrotu 200. Nie będziemy głęboko zagłębić się w sposób utworzenia serwera HTTP w Go. Sprawdź nasz samouczek na ten temat, aby dowiedzieć się więcej.
Przykładem serwera HTTP jest tak, jak pokazano:
Pakiet MainMożemy utworzyć test, aby sprawdzić, czy funkcja obsługi HTTP zwraca określony kod stanu. W naszym przypadku funkcja obsługi HTTP jest metodą Sayhello. Funkcja testowa jest jak pokazana:
Func TestStatuscode (T *Testowanie.T)W powyższym przykładzie tworzymy funkcję testową, aby sprawdzić wysłanie żądania GET do serwera za pomocą funkcji HTTP Function Sayhello, zwraca kod stanu 200.
Kod powraca:
=== Uruchom testStatuscodePanika testowa Golang
Kolejnym testem, który możemy uruchomić, jest sprawdzenie, czy określona funkcja panika. Możemy użyć assert.Metoda Panicks (), jak pokazano:
Functestpanic (testowanie t *.T)W powyższym przykładzie sprawdzamy, czy funkcja, czy panikuje.
Golang sprawdź, czy istnieje katalog
Jeśli chcesz sprawdzić, czy konkretny katalog istnieje na określonej ścieżce, możesz użyć metody Direxists ().
Na przykład:
FunCtestdir (testowanie t *.T)Wniosek
To był kompleksowy przewodnik o tym, jak zacząć od testowania w języku programowania Go. Testy są mocno stosowane w projektach wielorodzinnych. Dlatego nauka przeprowadzania testów jest wyjątkowa.
Pakiet Assert jest o wiele więcej. Dokumentacja rozszerza się na to.
https: // pkg.Iść.dev/github.com/stretch/zeznań/aserg