go-testing
Go testing patterns for Gentleman.Dots, including Bubbletea TUI testing. Trigger: When writing Go tests, using teatest, or adding test coverage.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Go testing patterns for Gentleman.Dots, including Bubbletea TUI testing. Trigger: When writing Go tests, using teatest, or adding test coverage.
How to use
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.
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.
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.
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.
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.
Uruchom testy za pomocą standardowego polecenia go test ./... i sprawdzaj pokrycie kodu flagą -cover, aby upewnić się, że wszystkie ścieżki kodu są testowane.