Zajmuję się tworzeniem aplikacji internetowej z funkcją Go. Do tej pory tak dobrze, ale teraz integruję Werckera jako narzędzie CI i zaczęłam dbać o testowanie. Ale moja aplikacja opiera się głównie na konfiguracji Cobra/Viper/flags/environment_variables i nie wiem jak poprawnie zainicjować wartości Viper przed uruchomieniem mojego zestawu testów. Każda pomoc byłaby bardzo cenna.Cobra + Viper Golang Jak testować podpolecenia?
6
A
Odpowiedz
6
Kiedy używam Cobra/Viper lub jakiejkolwiek innej kombinacji pomocników CLI, moim sposobem jest to, aby narzędzie CLI uruchamiało funkcję, której jedynym celem będzie uzyskanie argumentów i przekazanie ich innej metodzie, która zrobi rzeczywista praca.
Oto krótki (i głupi) przykład stosując Cobra:
package main
import (
"fmt"
"os"
"github.com/spf13/cobra"
)
func main() {
var Cmd = &cobra.Command{
Use: "boom",
Short: "Explode all the things!",
Run: Boom,
}
if err := Cmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(-1)
}
}
func Boom(cmd *cobra.Command, args []string) {
boom(args...)
}
func boom(args ...string) {
for _, arg := range args {
println("boom " + arg)
}
}
Tutaj funkcja Boom
jest trudne do sprawdzenia, ale jeden boom
jest łatwe.
Możesz zobaczyć inny (nietylmy) przykład tego here (i odpowiedni test here).
Powiązane problemy
- 1. Zaawansowana konfiguracja z golang Viper lib
- 2. Jak zrozumieć czystą architekturę VIPER?
- 3. Jak testować Spring Integration
- 4. Jak testować makra Scala?
- 5. Jak testować z MediatR
- 6. Jak testować Laravel Socialite
- 7. Jak testować bezpieczeństwo wątków
- 8. Jak testować zapytania HQL?
- 9. Jak testować wtyczki SBT
- 10. Jak testować haczyki na git?
- 11. Jak testować funkcje w Clojure?
- 12. Jak "testować" NoneType w python?
- 13. Jak testować w zakresie niszczenia
- 14. Jak testować jednostkę dla Xtext
- 15. Jak testować pamięć podręczną ETag?
- 16. Jak testować metodę reakcji komponentu?
- 17. Jak testować obietnice z Mocha
- 18. Jak testować aplikację mobilną webrtc?
- 19. Jak testować puts w rspec
- 20. jak testować skrypty aplikacji Google?
- 21. Jak testować jednostkę JSON parsowanie
- 22. Jak testować zdarzenia klawiatury jQuery?
- 23. Hadoop: Jak testować jednostki FileSystem
- 24. Jak odinstalować program Golang?
- 25. Analizator wiersza poleceń i brak podpolecenia i grupowania?
- 26. Różnica między Viper, Vimpulse i Evil dla Emacs?
- 27. golang - jak pobrać plik w przeglądarce z serwera golang?
- 28. Golang: Jak odczytać plik tekstowy?
- 29. Jak sprawdzić NaN w golang
- 30. Jak porównać błąd Golang obiektów