Que bueno este concepto de mock no lo conocía. También puede ayudar a disminuir la carga a la BD al momento de hacer testing. Tengo la du...

Juan Camilo Sarmiento Reyes

Juan Camilo Sarmiento Reyes

Pregunta
studenthace 4 años

Que bueno este concepto de mock no lo conocía. También puede ayudar a disminuir la carga a la BD al momento de hacer testing. Tengo la duda ¿por qué es necesario que las funciones GetPersonByDNI y GetEmployeeById sean variables? ¿Es para qué se pueda “reescribir” en el mock?

3 respuestas
para escribir tu comentario
    Adrián Olmedo

    Adrián Olmedo

    studenthace 4 años

    Es recomendable usar siempre que se pueda el operador de declaración corta

    :=
    obligándote a evitar variables globales (a nivel de paquete) en todos tus archivos
    .go
    y reducir el scope del proyecto en general.

    https://peter.bourgon.org/blog/2017/06/09/theory-of-modern-go.html

    También he vivido en carne propia caer en la trampa/situación de crear

    func init
    para tratar con variables globales. Es una pesadilla.

    Nestor Escoto

    Nestor Escoto

    teacherhace 4 años

    Hola Juan Camilo, estás en lo correcto, en el ejemplo que hemos visto usamos var para poder sobreescribir la función en el test.

    Jose Martin Rangel Espinoza

    Jose Martin Rangel Espinoza

    studenthace 4 años

    Una librería buena que pudieras revisar si gustas es "testify" ayuda mucho a simplificar aún más el concepto de pruebas unitarias y de mocks, pero también es bueno conocer lo que hay por debajo.

    En efecto las funciones fue necesarios hacerlas variables para que se pudieran redefinir a nuestro modo regresando datos de prueba.

Curso de Go Intermedio

Curso de Go Intermedio

Crea un servidor web con Go que procesa trabajos concurrentemente utilizando worker pools. Aprende sobre programación orientada a objetos, concurrencia y canales. Implementa pruebas para asegurar la calidad y optimización del código.

Curso de Go Intermedio
Curso de Go Intermedio

Curso de Go Intermedio

Crea un servidor web con Go que procesa trabajos concurrentemente utilizando worker pools. Aprende sobre programación orientada a objetos, concurrencia y canales. Implementa pruebas para asegurar la calidad y optimización del código.