Markop Test est un outil de test open-source gratuit pour .NET . À l'aide de tests Markop, vous pouvez facilement écrire des tests unitaires , des tests d'intégration , des tests fonctionnels et des tests de charge .
Afin d'utiliser le test de Markop, vous devez effectuer les étapes suivantes:
1- Créez un projet de bibliothèque de classe à l'intérieur de votre solution et nommez-le en fonction du type de test que vous souhaitez effectuer, par exemple, "fonctionaltest". N'oubliez pas d'ajouter le projet à votre solution.
dotnet new classlib -n [YOUR PROJECT NAME] dotnet sln add [YOUR PROJECT NAME] 3- Installez le package de test Markop dans votre projet de test:
Nuget:
Install-Package MarkopTestOu en utilisant dotnet CLI:
dotnet add package MarkopTest4- Selon le type de test que vous souhaitez effectuer, vous devez vous rendre à: test unitaire, test d'intégration, test fonctionnel ou test de charge.
Les tests unitaires sont censés tester le comportement d'un plus petit morceau de code. Le test de Markop est là pour rendre ce processus entièrement automatisé. Les tests d'unité d'écriture n'ont jamais été aussi simples auparavant !!
Tout d'abord, vous devez créer une classe AppFactory l'étendez à partir de la classe UnitTestFactory .
Ensuite, vous devez remplacer les méthodes Initializer et ConfigureTestServices
La méthode Initializer vous donne la possibilité d'initier une base de données personnalisée pour tester tout ce que vous avez à faire est de créer votre initialiseur personnalisé et de l'appeler ici. Le test de Markop s'occupera du reste !!
La méthode ConfigureTestServices vous donne la possibilité d'enregistrer / supprimer les services. De cette façon, vous aurez un contrôle total sur les services enregistrés de votre application avant de commencer les tests !!

Ensuite, vous devez créer une classe et l'étendre à partir de votre propre classe AppFactory
Ensuite, vous devez définir une méthode à l'intérieur de votre classe et mettre votre attribut de test peerférable. Il peut s'agir de [Fact] ou [Theory] ou tout autre attribut de test valide dans Xunit.
Vous pouvez maintenant commencer à écrire votre code de test dans votre méthode !!
Par exemple, dans le code ci-dessous, nous avons écrit du code pour tester une méthode d'extension appelée EmailNormalize

Une partie des tests logiciels qui teste les composants de code individuels pour valider les interactions entre les différents modules système logiciel.
Nous utilisons ces tests utilisés pour tester l'infrastructure de l'application et l'ensemble du cadre, y compris souvent les composants suivants:
Markop fournit une abstraction d'usine d'applications pour faciliter la mise en œuvre d'un test d'intégration propre et afficher la sortie au lieu d'utiliser des outils de test API externes tels que Postman.

Tout d'abord, vous devez créer une classe AppFactory l'étendez à partir de la classe IntegrationTestFactory .
Ensuite, vous devez remplacer l'initialiseur, configureTestServices, getURL, ValidateResponse Methods.
Ensuite, vous devez créer une classe et l'étendre à partir de votre propre classe AppFactory . Pour une implémentation plus propre, nous suggérons de créer une classe pour chaque contrôleur de votre API.
Utilisez Endpoint Atrutcout pour spécifier un modèle pour les adresses de demande.
Ensuite, vous devez définir une méthode à l'intérieur de votre classe et mettre votre attribut de test peerférable. Il peut s'agir de [Fact] ou [Theory] ou tout autre attribut de test valide dans Xunit.
Vous pouvez maintenant commencer à écrire votre code de test dans votre méthode !!
Par exemple, dans le code ci-dessous, nous avons écrit du code pour tester une API SignIn

Attention 1 : Aux variables d'exécution comme controller et action à l'intérieur Endpoint l'atruste sera intialisé avec le nom de votre classe et le nom de votre méthode .
Attention2 : le test de Markop ignore automatiquement le ["test", "tests", "contrôleur"] à la fin du nom de votre classe.
Par exemple, dans le code ci-dessus, la valeur controller sera "compte" et la valeur action sera "Signine". Les demandes seront envoyées au point de terminaison /Account/SignIn .
Le test détermine la fonctionnalité du produit qui peut être effectuée en agrégeant les tests d'intégration et en comparant la sortie réelle avec la sortie prédéterminée.
Nous utilisons des scénarios de cas pour les tests fonctionnels. Par exemple, dans un système d'actualités, nous devons tester des scénarios d'actualités de gestion tels que Create , Modifier et Supprimer l'entité d'information, vous pouvez implémenter un flux de travail de transaction dans votre système.
Comme dans les tests d'intégration, Markop fournit une abstraction d'usine d'application pour faciliter la mise en œuvre d'un test fonctionnel propre .
Initializer(IServiceProvider hostServices) : La méthode Initializer vous donne la possibilité d'initier une base de données personnalisée pour les tests. Tout ce que vous avez à faire est de créer votre initialiseur personnalisé et de l'appeler ici. Le test de Markop s'occupera du reste !!
ConfigureTestServices(IServiceCollection services) La méthode ConfigureTestServices vous donne la possibilité d'enregistrer / supprimer les services. De cette façon, vous aurez un contrôle total sur les services enregistrés de votre application avant de commencer les tests !!

GetUrl(string url, string controllerName, string testMethodName) GetUrl vous aide à créer la bonne adresse à laquelle HttpClient va envoyer la demande.
ValidateResponse(HttpResponseMessage httpResponseMessage,TFetchOptions fetchOptions) ValidateResponse vous permet de personnaliser le procpension de validation de réponse en fonction du comportement attendu de votre API.
Si vous êtes intéressé à contribuer à ce projet, tout d'abord, nous aimerions maîtriser ma sinistre gratitude.
N'hésitez pas à nous contacter si vous avez besoin d'aide.
Mit