¿Cómo escribir una prueba unitaria en Golang?

Como Escribir Una Prueba Unitaria En Golang



Si es un desarrollador de Go, sabe lo importante que es realizar pruebas para garantizar la calidad de su código. Escribiendo pruebas unitarias es una parte esencial del proceso de desarrollo y puede ayudarlo a detectar errores desde el principio, ahorrándole tiempo y dinero a largo plazo. En este artículo, discutiremos cómo escribir pruebas unitarias en Golang.

¿Qué es la prueba unitaria?

El primer paso es comprender lo que examen de la unidad medio. Examen de la unidad se refiere al proceso de probar pequeñas unidades o módulos de código para garantizar que cada uno de ellos funcione como se espera. Examen de la unidad se utiliza para eliminar problemas del código, mejorar la estabilidad del código y garantizar la corrección al actualizar el código. La etapa inicial de las pruebas de software es la prueba de unidad , seguida de la prueba de interfaz de usuario y la prueba de integración.

El paquete de prueba

en Golang, examen de la unidad se realiza usando un paquete llamado pruebas . El paquete proporciona varias funciones que nos permiten probar nuestro código. El código Go se puede probar automáticamente con la ayuda del paquete de prueba.







Programa de ejemplo para probar

Necesitamos algo de código para que nuestras pruebas analicen antes de que podamos escribir cualquier pruebas unitarias . Crearemos un pequeño programa que suma dos números.



paquete principal

importar (
    'fmt'
)
funcAdd ( a En t , b En t ) En t {
    devolver a + b
}

función principal ( ) {
fmt. Imprimir ( Agregar ( 2 , 3 ) )
}

El código anterior define el Agregar() función, que suma dos números, a y b , como entradas y salidas del resultado como un número entero. Sumar los números 2 y 3 es todo lo que hace la función principal antes de imprimir el resultado.







Convención de escritura de pruebas unitarias sobre la marcha

Cada proyecto Go debe tener un archivo de prueba separado que contenga todas las pruebas para ese proyecto. El archivo debe tener el mismo nombre que el archivo que se está probando y debe tener _prueba.ir agregado al final del nombre del archivo. Por ejemplo, si queremos probar un archivo llamado calculadora.ir , debemos nombrar nuestro archivo de prueba calculadora_test.go .

Es una práctica estándar para Ir a probar archivos estar ubicado en el mismo paquete o directorio que el código que están evaluando. Cuando usa el comando go build, el compilador no crea estos archivos, por lo que no tiene que preocuparse por su aparición en las implementaciones.



para escribir un prueba de unidad en Go, necesitamos usar el pruebas paquete. Podemos comenzar cada función de prueba con la palabra Prueba y luego agregar una descripción de lo que queremos probar. Por ejemplo, TestAddition o PruebaRestar . Luego podemos escribir el código de prueba que verifica si la función que estamos probando devuelve los resultados esperados.

En Go, cada función de prueba debe comenzar con la declaración t := prueba.T{}. Esta declaración crea una nueva pruebas objeto que podemos usar para comprobar si la prueba ha pasado o no. Entonces podemos usar el t.Errorf() función para imprimir un mensaje de error si la prueba falla.

¿Cómo escribir el código de prueba?

Cuando se trata de escribir pruebas unitarias en Go, es importante comenzar especificando el paquete que desea probar. Después de importar el paquete de prueba, puede acceder a varios tipos y métodos que exporta el paquete, incluido el probando.T tipo. La lógica de prueba en sí se escribe en una función que comienza con la palabra clave 'Prueba' seguido de un nombre descriptivo, como PruebaAñadir() . Dentro de esta función, puede incluir el código para la prueba y las afirmaciones necesarias para verificar el comportamiento esperado.

En resumen, las características de una prueba en Go son las siguientes:

  • El único y único parámetro requerido es t *prueba.T
  • La función de prueba comienza con la palabra Prueba y luego es seguida por una palabra o frase que comienza con una letra mayúscula.
  • Para indicar una falla, la función de prueba debe llamar t.Error o t.Fail, y para proporcionar información de depuración adicional sin causar una falla, se puede usar t.Log.
  • Para entregar información de depuración sin fallas, emplee t.Log.
  • Las pruebas se almacenan en archivos con el nombre foo_test.go , Por ejemplo, examen_matematicas.ir .

Cierre el archivo después de guardarlo.

paquete principal

importar (
    'pruebas'
)

funcTestAdd ( t * pruebas. T ) {
resultado := Agregar ( 2 , 3 )
    si resultado != 5 {
t. errorf ( 'Agregar (2, 3) = %d; quiero 5' , resultado )
    }
}

El Agregar() La función es probada por el PruebaAñadir() función, que se define en esta prueba. Utiliza los números 2 y 3 para llamar a Add y luego confirma que el resultado es 5. Se imprime un mensaje de error si el resultado es menor que 5 cuando t.Errorf() es invocado.

Finalmente, es importante saber que Go tiene una herramienta de prueba integrada llamada ir a prueba Esta herramienta ejecuta todas las pruebas del proyecto y proporciona un informe de los resultados. Ir a prueba debe escribirse en la terminal mientras está en el directorio del proyecto para iniciar las pruebas. Todas las pruebas en ese directorio se ejecutarán como resultado.

< fuerte > ir a prueba < prueba - archivo - nombre > _prueba. ir fuerte >

Resultados de la prueba unitaria

El resultado le mostrará las funciones de prueba que pasaron, fallaron u omitieron.

APROBADO o Aceptar denota que el código está funcionando según lo previsto. Usted recibirá FALLAR si una prueba falla.

El _prueba.ir sufijo es el único que el subcomando go test comprueba en los archivos. Luego, ir a probar busca en esos archivos cualquier función especial, como func. PruebaXxx y varios otros. Go test compila y llama a estas funciones correctamente, las ejecuta, recopila e informa los resultados, y finalmente limpia todo en un paquete principal temporal.

El último paso es integrar sus pruebas en su flujo de trabajo de desarrollo. La mejor práctica es ejecutar sus pruebas cada vez que envía su código a un repositorio. La integración de sus pruebas en su flujo de trabajo de desarrollo garantiza que su código se pruebe continuamente y que cualquier problema se resuelva antes de la implementación.

Conclusión

Escribiendo pruebas unitarias es un componente crucial del desarrollo de software porque garantiza que su código sea escalable, funcional y efectivo. La biblioteca de pruebas de Go es sencilla y fácil de usar. Deberías poder crear Golang pruebas unitarias de la más alta calidad siguiendo los procedimientos enumerados anteriormente. Recuerde integrar sus pruebas en su flujo de trabajo de desarrollo para garantizar que su código se pruebe continuamente y que cualquier problema se resuelva antes de la implementación.