Compartir a través de


Generación de pruebas unitarias con GitHub Copilot

En este artículo, explorará cómo generar pruebas unitarias y proyectos de prueba en C# mediante el marco xUnit con la ayuda de comandos de Visual Studio y GitHub Copilot. El uso de Visual Studio en combinación con GitHub Copilot simplifica significativamente el proceso de generación y escritura de pruebas unitarias.

Creación de un proyecto de prueba

Imagine que hay una ProductService clase con un GetProductById método que depende de las IProductDataStorage interfaces y ICacheClient .

public class ProductService(
    IProductDataStorage productDataStorage,
    ICacheClient cacheClient)
{
    public async Task<Product?> GetProductById(int productId)
    {
        var product = await cacheClient.GetProduct(productId);

        if (product is not null)
        {
            return product;
        }

        product = await productDataStorage.GetProduct(productId);

        if (product is not null)
        {
            await _cacheClient.SetProduct(product);
        }

        return product;
    }
}

Para generar un proyecto de prueba y un método auxiliar, siga estos pasos:

  • Seleccione el método .
  • Haga clic con el botón derecho y seleccione Crear pruebas unitarias.

Comando de creación de pruebas unitarias

En el cuadro de diálogo Crear pruebas unitarias , seleccione xUnit en el menú desplegable Marco de pruebas .

Nota:

El comando Crear pruebas unitarias tiene como valor predeterminado el marco MSTest. Sin embargo, dado que en este ejemplo se usa xUnit, debe instalar la extensión de Visual Studio xUnit.net.TestGenerator2022.

Crear ventana de pruebas unitarias

  • Si aún no tiene un proyecto de prueba, elija Nuevo proyecto de prueba o seleccione uno existente.
  • Si es necesario, especifique una plantilla para el espacio de nombres, la clase y el nombre del método y, a continuación, haga clic en Aceptar.

Después de unos segundos, Visual Studio extraerá los paquetes necesarios y obtendrá un proyecto xUnit generado con los paquetes y la estructura necesarios, una referencia al proyecto que se está probando y la ProductServiceTests clase y un método de código auxiliar.

Método stub generado

Generar las pruebas por sí mismas

  • Vuelva a seleccionar el método que se está probando.

  • Haga clic con el botón derecho y seleccione Preguntar a Copilot.

  • Escriba un mensaje sencillo, como:

    "Genere pruebas unitarias mediante xunit, nsubstitute e inserte el resultado en #ProductServiceTests archivo".

    Debe seleccionar su clase de prueba cuando escriba el carácter #.

Sugerencia

Para la búsqueda rápida, es conveniente que ProductServiceTests esté abierto en una pestaña independiente.

Solicitud de generación de pruebas

Ejecute la instrucción, haga clic en Aceptar y Copilot genera el código de prueba. Después de eso, queda por instalar los paquetes necesarios.

Cuando se instalan los paquetes, se pueden ejecutar las pruebas. En este ejemplo funcionó a la primera: Copilot sabe cómo trabajar con NSubstitute y todas las dependencias se definieron a través de interfaces.

Pruebas generadas