Cómo escribir pruebas unitarias en C# para una mejor calidad del código

Como Escribir Pruebas Unitarias En C Para Una Mejor Calidad Del Codigo



Cuando la mayoría de nosotros comenzamos como desarrolladores, apenas pensamos ni dedicamos mucho tiempo a las pruebas unitarias. Sin embargo, cuando ingresa a un entorno de repositorio compartido más complejo, se vuelve cada vez más esencial probar el código antes de implementarlo en producción.

Por lo tanto, es esencial adquirir los fundamentos de las pruebas unitarias en las primeras etapas de desarrollo para evitar la curva de aprendizaje cuando se trata de bases de código extensas.

En este tutorial, le presentaremos el marco de las pruebas unitarias utilizando C# y la biblioteca de pruebas MSTest. Construiremos una aplicación básica que le permitirá aprender cómo crear pruebas unitarias, cómo ejecutarlas y cómo interpretar los resultados de una prueba fallida o exitosa.







Entorno de prueba

Comencemos analizando la solución de prueba y cómo configurar nuestra aplicación básica.



Para seguir y replicar la aplicación en este tutorial, asegúrese de tener lo siguiente:



  1. Visual Studio instalado
  2. Herramientas .NET y C# configuradas en su máquina

Crear una aplicación

A continuación, abra Visual Studio y cree una nueva solución. Para este tutorial, crearemos una aplicación de calculadora básica. Puede darle a la aplicación el nombre que desee.





A continuación, cree un nuevo proyecto y seleccione el tipo de proyecto como Proyecto de prueba MSTest y asígnele el nombre que desee.



Asegúrese de seleccionar 'Agregar a la solución' y elija la aplicación creada anteriormente.

Debe tener la aplicación principal y el proyecto de prueba unitaria como se muestra en el explorador de soluciones.

Escriba el código para la aplicación de calculadora

El siguiente paso es escribir el código de nuestra aplicación de calculadora. Esto lo podemos hacer en el archivo “program.cs” de CalcApp.

Como buscamos una funcionalidad básica, podemos agregar el código fuente de la siguiente manera:

Calculadora de clase pública
{
público doble Agregar ( doble a , doble b )
    {
        devolver a + b ;
    }

público doble Sustraer ( doble a , doble b )
    {
        devolver a - b ;
    }

público doble Multiplicar ( doble a , doble b )
    {
        devolver a * b ;
    }

público doble Dividir ( doble a , doble b )
    {
        si ( b == 0 )
lanzar nueva DivideByZeroException ( ) ;
        devolver a / b ;
    }
}

Como puedes adivinar, el código anterior crea una aplicación de calculadora que puede realizar las aplicaciones aritméticas básicas.

Escribe las pruebas unitarias

Una vez que hayamos terminado, podemos escribir las pruebas unitarias para la clase 'Calculadora'. En este caso, todo lo que necesitamos hacer es escribir las pruebas en el archivo “UnitTest” del proyecto de la siguiente manera:

usando el sistema ;

espacio de nombres CalcApp
{
Calculadora de clase pública
    {
público doble Agregar ( doble a , doble b )
        {
            devolver a + b ;
        }

público doble Sustraer ( doble a , doble b )
        {
            devolver a - b ;
        }

público doble Multiplicar ( doble a , doble b )
        {
            devolver a * b ;
        }

público doble Dividir ( doble a , doble b )
        {
            si ( b == 0 )
lanzar nueva DivideByZeroException ( ) ;
            devolver a / b ;
        }
    }
}

espacio de nombres CalcTest
{
    [ Clase de prueba ]
Pruebas de calculadora de clase pública
    {
calculadora calculadora privada ;

        [ PruebaInicializar ]
público vacío Configuración ( )
        {
calculadora = nueva calculadora ( ) ;
        }

        [ Método de prueba ]
público vacío Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
        {
fue el resultado = calculadora. Agregar ( 5 , 5 ) ;
Afirmar. Son iguales ( 10 , resultado ) ;
        }

        [ Método de prueba ]
público vacío Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
        {
fue el resultado = calculadora. Sustraer ( 10 , 5 ) ;
Afirmar. Son iguales ( 5 , resultado ) ;
        }

        [ Método de prueba ]
público vacío Multiplicar_DosNúmerosPositivos_DevolucionesProductoCorrecto ( )
        {
fue el resultado = calculadora. Multiplicar ( 5 , 5 ) ;
Afirmar. Son iguales ( 25 , resultado ) ;
        }

        [ Método de prueba ]
        [ Excepción esperada ( tipo de ( Excepción Dividir por cero ) ) ]
público vacío Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
        {
fue el resultado = calculadora. Dividir ( 5 , 0 ) ;
        }

        [ Método de prueba ]
público vacío Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
        {
fue el resultado = calculadora. Dividir ( 10 , 5 ) ;
Afirmar. Son iguales ( 2 , resultado ) ;
        }
    }
}

Conclusión

Este es un tutorial básico que cubre los fundamentos de las pruebas unitarias en C# utilizando el marco MSTest.