Toolverse
Wszystkie skille

go-testing

autor: Gentleman-Programming

Szablony testowania Go z obsługą komponentów Bubbletea TUI

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Testowanie
Wyświetlenia
9

O skillu

Umiejętność dla Gentleman.Dots zawierająca sprawdzone wzorce testowania kodu Go. Obejmuje testy jednostkowe, testy sterowane tabelą, testowanie komponentów interfejsu Bubbletea oraz testy integracyjne z użyciem teatest. Aktywuje się podczas pisania testów, konfiguracji pokrycia kodu lub pracy z komponentami TUI. Ułatwia strukturyzację testów, symulację interakcji użytkownika i weryfikację zmian stanu modelu.

Jak używać

  1. Zainstaluj umiejętność w swoim projekcie Gentleman.Dots, dodając katalog go-testing do folderu skills. Upewnij się, że masz zainstalowany Go w wersji obsługującej moduły oraz bibliotekę Bubbletea, jeśli testujesz komponenty TUI.

  2. Przy pisaniu testów jednostkowych zastosuj wzorzec testów sterowanych tabelą — zdefiniuj strukturę z polami name, input, expected i wantErr, a następnie iteruj po przypadkach testowych w pętli t.Run(). Podejście to pozwala na łatwe dodawanie nowych scenariuszy bez duplikowania kodu.

  3. Do testowania modeli Bubbletea utwórz instancję modelu, symuluj zdarzenia klawiszowe za pomocą tea.KeyMsg i sprawdzaj zmiany stanu, takie jak przejścia między ekranami. Weryfikuj, że Model.Update() zwraca oczekiwane wartości i stan wewnętrzny.

  4. Dla testów integracyjnych interfejsu TUI użyj biblioteki teatest z Charmbracelet — utwórz TestModel, symuluj sekwencje interakcji użytkownika i asercje na wyjściu renderowanym. Pozwala to na testowanie pełnych przepływów interakcji bez ręcznego uruchamiania aplikacji.

  5. Rozważ użycie golden file testing do porównywania wyjścia tekstowego — zapisz oczekiwane wyniki w plikach referencyjnych i porównuj je z rzeczywistym wyjściem testów, szczególnie przydatne dla testowania renderowania TUI.

  6. Uruchom testy za pomocą standardowego polecenia go test ./... i sprawdzaj pokrycie kodu flagą -cover, aby upewnić się, że wszystkie ścieżki kodu są testowane.

Podobne skille