Jak napisać test jednostkowy w Golang?

Jak Napisac Test Jednostkowy W Golang



Jeśli jesteś programistą Go, wiesz, jak ważne jest testowanie dla zapewnienia jakości kodu. Pismo testy jednostkowe jest istotną częścią procesu programowania i może pomóc wcześnie wykryć błędy, oszczędzając czas i pieniądze na dłuższą metę. W tym artykule omówimy, jak pisać testy jednostkowe w Golangu.

Czym są testy jednostkowe?

Pierwszym krokiem jest zrozumienie, co testów jednostkowych oznacza. Testów jednostkowych odnosi się do procesu testowania małych jednostek kodu lub modułów, aby upewnić się, że każdy z nich działa zgodnie z oczekiwaniami. Testów jednostkowych służy do usuwania problemów z kodu, poprawy stabilności kodu i zapewnienia poprawności podczas aktualizacji kodu. Początkowym etapem testowania oprogramowania jest tzw test jednostkowy , po którym następuje test interfejsu użytkownika i test integracji.

Pakiet testowy

w Golangu, testów jednostkowych odbywa się za pomocą pakietu o nazwie testowanie . Pakiet udostępnia różne funkcje, które pozwalają nam przetestować nasz kod. Kod Go może być automatycznie testowany za pomocą pakietu testowego.







Przykładowy program do przetestowania

Potrzebujemy trochę kodu do naszych testów do analizy, zanim będziemy mogli napisać jakikolwiek testy jednostkowe . Stworzymy mały program, który dodaje dwie liczby.



Pakiet główny

import (
'fmt'
)
funcAdd ( A int , B int ) int {
powrót A + B
}

funkcja główna ( ) {
fmt. Drukuj ln ( Dodać ( 2 , 3 ) )
}

Powyższy kod definiuje Dodać() funkcja dodająca dwie liczby, A I B , jako dane wejściowe i wyjściowe wynik jako liczbę całkowitą. Dodanie liczb 2 i 3 to wszystko, co główna funkcja robi przed wydrukowaniem wyniku.







Konwencja pisania testów jednostkowych w Go

Każdy projekt Go powinien mieć osobny plik testowy, który zawiera wszystkie testy dla tego projektu. Plik powinien mieć taką samą nazwę jak plik testowany i powinien mieć _test.go dodany na końcu nazwy pliku. Na przykład, jeśli chcemy przetestować plik o nazwie kalkulator.go , powinniśmy nazwać nasz plik testowy kalkulator_test.go .

To standardowa praktyka dla Przejdź do testowania plików znajdować się w tym samym pakiecie lub katalogu, co kod, który oceniają. Kiedy używasz polecenia go build, kompilator nie tworzy tych plików, więc nie musisz się martwić, że pojawią się one we wdrożeniach.



Aby napisać test jednostkowy w Go musimy użyć testowanie pakiet. Każdą funkcję testową możemy rozpocząć od słowa Test a następnie dodaj opis tego, co chcemy przetestować. Na przykład, Dodatek testowy Lub Odejmowanie testowe . Następnie możemy napisać kod testowy, który sprawdza, czy funkcja, którą testujemy, zwraca oczekiwane wyniki.

W Go każda funkcja testowa powinna zaczynać się od instrukcji t := testowanie.T{}. Ta instrukcja tworzy nowy testowanie obiekt, za pomocą którego możemy sprawdzić, czy test przeszedł pomyślnie, czy nie. Możemy wtedy użyć tzw t.Błąd() funkcja drukowania komunikatu o błędzie, jeśli test się nie powiedzie.

Jak napisać kod testowy?

Jeśli chodzi o pisanie testów jednostkowych w Go, ważne jest, aby zacząć od określenia pakietu, który chcesz przetestować. Po zaimportowaniu pakietu testowego można uzyskać dostęp do różnych typów i metod eksportowanych przez pakiet, w tym do testowanie.T typ. Sama logika testowania jest następnie zapisywana w funkcji, która zaczyna się od słowa kluczowego 'Test' po którym następuje nazwa opisowa, np TestDodaj() . W ramach tej funkcji możesz dołączyć kod testu i wszelkie asercje potrzebne do zweryfikowania oczekiwanego zachowania.

Podsumowując, cechy testu w Go są następujące:

  • Jedynym wymaganym parametrem jest t *testowanie.T
  • Funkcja testowania zaczyna się od słowa Test, po którym następuje słowo lub fraza zaczynająca się wielką literą.
  • Aby wskazać awarię, funkcja testowania powinna wywołać albo t.Błąd Lub t.Niepowodzenie, oraz aby zapewnić dodatkowe informacje debugowania bez powodowania awarii, można użyć t.Log.
  • Aby dostarczyć niezawodne informacje debugowania, użyj t.Log.
  • Testy są przechowywane w plikach o nazwie foo_test.go , Na przykład, math_test.go .

Zamknij plik po zapisaniu.

Pakiet główny

import (
„testowanie”
)

FuncTestDodaj ( T * testowanie. T ) {
wynik := Dodać ( 2 , 3 )
Jeśli wynik != 5 {
T. Błądf ( 'Dodaj(2, 3) = %d; chcę 5' , wynik )
}
}

The Dodać() funkcja jest testowana przez TestDodaj() funkcja, która jest zdefiniowana w tym teście. Wykorzystuje cyfry 2 i 3 do wywołania funkcji Dodaj, a następnie potwierdza, że ​​wynikiem jest 5. Komunikat o błędzie jest drukowany, jeśli wynik jest mniejszy niż 5, gdy t.Błąd() jest wywoływany.

Na koniec ważne jest, aby wiedzieć, że Go ma wbudowane narzędzie do testowania o nazwie idź testować. To narzędzie przeprowadza wszystkie testy w projekcie i dostarcza raport z wynikami. Idź na próbę należy wpisać w terminalu będąc w katalogu projektu, aby rozpocząć testy. W rezultacie zostaną uruchomione wszystkie testy w tym katalogu.

< mocny > idź testować < test - plik - nazwa > _test. Iść mocny >

Wyniki testu jednostkowego

Dane wyjściowe pokażą funkcje testowe, które przeszły pomyślnie, zakończyły się niepowodzeniem lub zostały pominięte.

PASUJ lub OK oznacza, że ​​kod działa zgodnie z przeznaczeniem. Otrzymacie PONIEŚĆ PORAŻKĘ jeśli test się nie powiedzie.

The _test.go sufiks jest jedynym sufiksem sprawdzanym przez komendę go test w plikach. Następnie przejdź test przeszukuje te pliki pod kątem jakichkolwiek funkcji specjalnych, takich jak func TestXxx i kilka innych. Go test buduje i poprawnie wywołuje te funkcje, wykonuje je, gromadzi i raportuje wyniki, a na koniec czyści wszystko w tymczasowym pakiecie głównym.

Ostatnim krokiem jest zintegrowanie testów z przepływem pracy programistycznej. Najlepszą praktyką jest uruchamianie testów za każdym razem, gdy zatwierdzasz swój kod w repozytorium. Integracja testów z przepływem pracy programistycznej zapewnia ciągłe testowanie kodu i rozwiązywanie wszelkich problemów przed wdrożeniem.

Wniosek

Pismo testy jednostkowe jest kluczowym elementem tworzenia oprogramowania, ponieważ gwarantuje, że Twój kod jest skalowalny, funkcjonalny i efektywny. Biblioteka testowa Go jest łatwa i prosta w użyciu. Powinieneś być w stanie stworzyć Golanga testy jednostkowe najwyższej jakości, stosując się do wyżej wymienionych procedur. Pamiętaj, aby zintegrować testy z przepływem pracy programistycznej, aby mieć pewność, że Twój kod jest stale testowany, a wszelkie problemy rozwiązywane przed wdrożeniem.