No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Unit Testing en Go

Curso de Unit Testing en Go

Maria Camila Lenis

Maria Camila Lenis

Mockeando mux router

11/15
Recursos

Aportes 3

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Ejemplos de los tests con los codigos 404/500 de la API, en mi caso use assert de la misma libreria testify y t.Run para correo cada test y no llamarlos como una funcion:

t.Run("PokemonNotFoundError", func(t *testing.T) {
		r, err := http.NewRequest("GET", "/pokemon/{id}", nil)
		assert.NoError(t, err)

		w := httptest.NewRecorder()

		vars := map[string]string{
			"id": "ssssssss",
		}

		r = mux.SetURLVars(r, vars)

		GetPokemon(w, r)

		assert.Equal(t, http.StatusNotFound, w.Code)
	})

	t.Run("PokemonInternalServerError", func(t *testing.T) {
		r, err := http.NewRequest("GET", "/pokemon/{id}", nil)
		assert.NoError(t, err)

		w := httptest.NewRecorder()

		vars := map[string]string{
			"id": "",
		}

		r = mux.SetURLVars(r, vars)

		GetPokemon(w, r)

		assert.Equal(t, http.StatusInternalServerError, w.Code)
	})

Les dejo la documentación del paquete mux:
mux

Hola, buenas tardes,
Dejo mi ejemplo de TestGetPokemonNotFoundError, saludos!

func TestGetPokemonNotFoundError(t *testing.T) {
	c := require.New(t)
	r, err := http.NewRequest("GET", "/pokemon/{id}", nil)
	c.NoError(err)
	w := httptest.NewRecorder()

	vars := map[string]string{
		"id": "charizardo",
	}

	r = mux.SetURLVars(r, vars)
	GetPokemon(w, r)

	c.Equal(http.StatusNotFound, w.Code)
}