La prueba de Markop es una herramienta de prueba gratuita, de código abierto y enfocado para .NET . Usando pruebas de Markop, puede escribir fácilmente pruebas unitarias , pruebas de integración , pruebas funcionales y pruebas de carga .
Para usar la prueba de Markop, debe hacer los siguientes pasos:
1- Cree un proyecto de biblioteca de clases dentro de su solución y asígnele de acuerdo con el tipo de prueba que desea realizar, por ejemplo, "FunctionAlest". No olvide agregar el proyecto a su solución.
dotnet new classlib -n [YOUR PROJECT NAME] dotnet sln add [YOUR PROJECT NAME] 3- Instale el paquete de prueba de Markop dentro de su proyecto de prueba:
Nuget:
Install-Package MarkopTestO usando Dotnet CLI:
dotnet add package MarkopTest4- Dependiendo del tipo de prueba que desee realizar a la que debe ir: prueba unitaria, prueba de integración, prueba funcional o prueba de carga.
Se supone que las pruebas unitarias evalúan el comportamiento de un código más pequeño. La prueba de Markop está aquí para que este proceso sea completamente automatizado. ¡Escribir pruebas unitarias nunca antes ha sido más fácil!
En primer lugar, debe crear una clase AppFactory extenderla desde la clase UnitTestFactory .
Entonces debe anular los métodos de Initializer y ConfigureTestServices
El método Initializer le brinda la capacidad de iniciar una base de datos personalizada para probar todo lo que tiene que hacer es construir su inicializador personalizado y llamarlo aquí. ¡La prueba de Markop se encargará del resto!
El método ConfigureTestServices le brinda la capacidad de registrar/eliminar los Servicios. ¡De esta manera tendrá control total sobre los servicios registrados de su aplicación antes de comenzar a probar!

Entonces necesita crear una clase y extenderla desde su propia clase AppFactory
A continuación, debe definir un método dentro de su clase y colocar su atributo de prueba Pereferable. Puede ser [Fact] o [Theory] o cualquier otro atributo de prueba válido en XUnit.
¡Ahora puede comenzar a escribir su código de prueba dentro de su método!
Por ejemplo, en el siguiente código, escribimos código para probar un método de extensión llamado EmailNormalize

Una parte de las pruebas de software que prueba los componentes del código individual para validar las interacciones entre diferentes módulos de sistema de software.
Usamos estas pruebas se utilizan para probar la infraestructura de la aplicación y todo el marco, a menudo incluyendo los siguientes componentes:
Markop proporciona una abstracción de fábrica de aplicaciones para facilitar la implementación de una prueba de integración limpia y ver la salida en lugar de usar herramientas de prueba de API externas como Postman.

En primer lugar, debe crear una clase AppFactory extenderla desde IntegrationTestFactory Class.
A continuación, debe anular el inicializador, ConfigureTestServices, GetURL, ValidaterAlSponse Methods.
Luego debe crear una clase y extenderla desde su propia clase AppFactory . Para una implementación más limpia, sugerimos crear una clase para cada controlador en su API.
Use el apoque Endpoint para especificar un patrón para las direcciones de solicitud.
A continuación, debe definir un método dentro de su clase y colocar su atributo de prueba Pereferable. Puede ser [Fact] o [Theory] o cualquier otro atributo de prueba válido en XUnit.
¡Ahora puede comenzar a escribir su código de prueba dentro de su método!
Por ejemplo, en el siguiente código escribimos código para probar una API SignIn

ATENCIÓN1 : En las variables de tiempo de ejecución como controller y action dentro de Endpoint Atrributiber se intitalizarán con el nombre de su clase y el nombre de su método .
Atención2 : la prueba de Markop ignora automáticamente la ["prueba", "pruebas", "controlador"] al final del nombre de su clase.
Por ejemplo, en el código anterior, el valor controller será "cuenta" y el valor action será "firmar". Las solicitudes se enviarán a /Account/SignIn Endpoint.
La prueba determina la funcionalidad del producto que se puede hacer agregando las pruebas de integración y comparando la salida real con la salida predeterminada.
Usamos escenarios de casos para pruebas funcionales. Por ejemplo, en un sistema de noticias, debemos probar la gestión de escenarios de noticias como Crear , editar y eliminar la entidad de noticias, puede implementar el flujo de trabajo de transacciones en su sistema.
Al igual que en las pruebas de integración, Markop proporciona una abstracción de fábrica de aplicaciones para facilitar la implementación de una prueba funcional limpia .
Initializer(IServiceProvider hostServices) : El método Initializer le brinda la capacidad de iniciar una base de datos personalizada para las pruebas. Todo lo que tiene que hacer es construir su inicializador personalizado y llamarlo aquí. ¡La prueba de Markop se encargará del resto!
ConfigureTestServices(IServiceCollection services) El método ConfigureTestServices le brinda la capacidad de registrar/eliminar los Servicios. ¡De esta manera tendrá control total sobre los servicios registrados de su aplicación antes de comenzar a probar!

GetUrl(string url, string controllerName, string testMethodName) GetUrl le ayuda a construir la dirección correcta a la que httpclient va a enviar la solicitud.
ValidateResponse(HttpResponseMessage httpResponseMessage,TFetchOptions fetchOptions) ValidateResponse le permite personalizar el procedimiento de validación de respuesta de acuerdo con el comportamiento esperado de su API.
Si está interesado en contribuir a este proyecto, en primer lugar, nos gustaría extender mi sincera gratitud.
No dude en comunicarse con nosotros si necesita ayuda.
MIT