Я пишу тесты и смог смоделировать базу данных для SQL-запросов с помощью go-sqlmock. Но как я могу тестировать обработчики, то есть заголовки, которые я не могу себе представить? Вот пример:
func (env *EnvironmentUser) GetUserHandler (w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
id, err := strconv.Atoi(params["id"])
if err != nil {
w.WriteHeader(http.StatusNotFound)
return
}
user, err := env.Db.GetUser(int(id))
if err != nil {
if err == sql.ErrNoRows {
w.WriteHeader(http.StatusUnauthorized)
}
w.WriteHeader(http.StatusInternalServerError)
return
}
json.NewEncoder(w).Encode(user)
w.WriteHeader(http.StatusOK)
}
GetUser - листинг:
row := db.QueryRow("SELECT * FROM users WHERE id = $1", id)
err = row.Scan(&user.Id, &user.Email, &user.Login, &user.Fullname,
&user.Password, &user.AccVerified)
if err != nil {
return models.User{}, err
}
return user, nil
Как проверить правильность всех хадеров ??