Pisanie testów jednostkowych nie musi być żmudne. Skorzystaj z gotowych promptów i AI, by przyspieszyć i ulepszyć testowanie swojego kodu.
Dlaczego warto pisać testy jednostkowe z AI?
Testy jednostkowe (unit tests) to podstawa pewności, że Twój kod działa. Jednak pisanie ich bywa nużące, zwłaszcza przy powtarzalnych funkcjach. W tym artykule dostaniesz gotowe prompty testy, dzięki którym ChatGPT lub inna AI napisze za Ciebie solidne testy jednostkowe w dowolnym języku programowania.
Podstawowy prompt – test jednostkowy do funkcji
Napisz test jednostkowy dla poniższej funkcji w języku Python, używając unittest. Funkcja:
[Wklej tutaj kod funkcji]Ten prompt sprawdzi się, gdy masz konkretną funkcję i chcesz szybko dostać gotowy test. AI wygeneruje klasę testową, przykładowe przypadki i asercje.
Tip: Jeśli zależy Ci na testach dla kilku funkcji, po prostu wklej je wszystkie do prompta. AI napisze testy dla każdej z nich.
Prompt z chain of thought – wyjaśnij test, potem napisz kod
Najpierw wyjaśnij, jakie przypadki powinny zostać przetestowane dla tej funkcji. Następnie napisz testy jednostkowe w języku JavaScript z użyciem Jest. Funkcja:
[Wklej tutaj kod funkcji]Ten prompt uruchamia chain of thought. Najpierw dostajesz analizę przypadków brzegowych i typowych, potem kod testów. Przydaje się, jeśli nie masz pewności, co warto przetestować.
Prompt few-shot – styl testów jak w Twoim projekcie
Oto przykładowy test jednostkowy w moim projekcie:
[Wklej przykładowy test]
Napisz podobny test dla poniższej funkcji:
[Wklej kod funkcji]Few-shot prompt pozwala AI odwzorować Twój styl pisania testów, nazewnictwo, strukturę plików itd. To idealne rozwiązanie, jeśli masz już swoje konwencje i chcesz, by AI się do nich dostosowała.
Prompt do generowania parametrów testów (parametryzacja)
Podaj tabelę przypadków testowych oraz napisz parametryzowany test jednostkowy w języku Python z pytest dla tej funkcji:
[Wklej tutaj kod funkcji]AI wymyśli przykładowe dane wejściowe i oczekiwane wyniki, a następnie wygeneruje test parametryzowany. Przydatne do funkcji, które przyjmują różne typy danych lub mają wiele ścieżek wykonania.
Prompt do testowania wyjątków i błędów
Napisz test jednostkowy sprawdzający, czy poniższa funkcja rzuca wyjątek w przypadku nieprawidłowych danych wejściowych. Użyj unittest (Python):
[Wklej kod funkcji]Użyj tego prompta, gdy chcesz upewnić się, że funkcja dobrze obsługuje błędy i nieoczekiwane dane.
Prompt do testów regresyjnych
Załóż, że poniższa funkcja miała już zgłoszone błędy związane z [opisz krótko błąd]. Napisz test regresyjny w języku Java z użyciem JUnit, który zabezpiecza przed powrotem tego błędu. Funkcja:
[Wklej kod funkcji]Testy regresyjne to ważny element stabilności projektu. Ten prompt pozwala AI napisać test „na buga”, który już się kiedyś pojawił.
Prompt do refaktoringu istniejących testów
Zoptymalizuj poniższe testy jednostkowe, popraw czytelność i usuń powtórzenia. Testy:
[Wklej istniejące testy]AI potrafi nie tylko pisać nowe testy, ale też usprawniać te, które masz. Ten prompt świetnie sprawdza się przy starszych, nieczytelnych testach.
Jak wyciągnąć maksimum z AI testowanie?
- Zawsze wklejaj pełną definicję funkcji — AI nie zgaduje typów i zachowania na podstawie samej nazwy.
- Dodaj opis, co funkcja ma robić, jeśli jest nieoczywista.
- Testy warto generować w kilku iteracjach — najpierw podstawowe, później z edge case’ami.
- Nie kopiuj testów bez sprawdzenia — AI może się pomylić w asercjach lub nazwach funkcji.
- Przy bardziej skomplikowanych funkcjach poproś najpierw o opis przypadków testowych (chain of thought), potem o kod.
Podsumowanie
Prompty testy to szybki sposób na solidne unit testy bez żmudnego pisania. Wystarczy wybrać prompt, wkleić kod i zlecić ChatGPT lub innej AI generowanie testów. AI testowanie to nie tylko oszczędność czasu, ale też lepsze pokrycie przypadków brzegowych. Wypróbuj powyższe prompty, dostosuj je do swojego stacku i sprawdź, jak Twoje testy wskoczą na wyższy poziom!