Golang — поднятие тест сервера при unit тестах
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
func TestHTTP(t *testing.T) { go func() { serverMux := http.NewServeMux() serverMux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Pong!") }) err := http.ListenAndServe(":8082", serverMux) if err != nil { panic("ListenAndServe: " + err.Error()) } }() URL = "http://localhost:8082" assert.NoError(t, myTestServerFunc()) } ... ... ... func myTestServerFunc() err { // here your business logic which calls remote hosts return nil } |
При помощи данного сниппета мы можем зарегистрировать нужные нам http роуты для теста и запустить в отдельной go-рутине минимальный веб сервер. Данная техника полезна при тестировании различных HTTP запросов без вовлечения внешних ресурсов. Тем самым мы можем проверить наш…
Read more