Prérequis
Maîtrise de C# et compréhension des tests unitaires. Expérience avec un framework de test (xUnit, MSTest) ou JUnit/pytest dans un autre langage facilitera l’apprentissage.
Durée
2 jours
Contenu Technique de la Formation
NUnit est le framework historique et le plus riche de l’écosystème .NET, avec des contraintes avancées (Constraints API) et une exécution parallèle native. Cette formation couvre les attributs [Test]/[TestCase], Assert.That, SetUp/TearDown et l’intégration des mocks.
- [Test] et [TestCase] — tests simples et paramétrés, [TestFixture] pour groupement
- Assert.That avec Constraints — prédicats fluents, syntaxe expressive et clarté
- SetUp/TearDown et [OneTimeSetUp] — lifecycle par test et par fixture
- TestCaseSource et data-driven — sources externes (méthodes, fichiers)
- Mocking et stubs — Moq intégration et vérification d’interactions
- Exécution parallèle et rapports — [Parallelizable], réduction du temps CI, rapports HTML/XML
Objectifs de la Formation
Les objectifs visés par cette formation sont :
- Concevoir des batteries de tests avec [Test], [TestCase] et TestCaseSource
- Maîtriser Assert.That et les Constraints pour assertions expressives
- Orchestrer le lifecycle SetUp/TearDown par test et par fixture
- Intégrer Moq pour l’isolation des dépendances et la vérification
- Configurer l’exécution parallèle et optimiser le temps CI
- Générer et analyser des rapports NUnit (HTML, XML, JSON)
Table des Matières
Fondamentaux NUnit et structure de test
- [TestFixture] et [Test] : organisation et nommage
- Assert.That vs Assert.AreEqual : API Constraints
- Nommage des tests : Convention_Input_Output
- Arrange-Act-Assert et Given-When-Then
Assertions avancées avec Constraints
- Is, Has, Throws : prédicats fluents
- StringConstraint : ContainsSubstring, StartsWith, EndsWith
- CollectionConstraint : Contains, Empty, Unique
- ComparisonConstraint : GreaterThan, LessThan, InRange
- LogicalConstraint : And, Or, Not
Données paramétrées et sources
- [TestCase] et [TestCaseSource] : énumération inline et externe
- IEnumerable
pour source riche - [CombinatorialAttribute] : matrix et combinaisons
- [Sequential] : pairing et appairage parallèle
Lifecycle et configuration
- [SetUp] et [TearDown] : avant/après chaque test
- [OneTimeSetUp] et [OneTimeTearDown] : initialisation fixture
- [TestFixtureSetUp] et [TestFixtureTearDown] : legacy (remplacé)
- IAsyncTest et async/await en tests
Parallelisation, mocking et rapports
- [Parallelizable] : tests parallèles par défaut
- [NonParallelizable] : tests bloquants (I/O, BD)
- LevelOfParallelism et configuration TestContext
- Moq : Mock
, Verify et Returns - Reporteurs : NUnitV3 XML, HTML, TeamCity, AppVeyor
En Pratique
Configuration NUnit et structure de tests
- Créer des suites de tests avec [TestFixture] et [Test]
- Utiliser [SetUp], [TearDown] et les assertions NUnit
Tests paramétrés et sources de données
- Utiliser [TestCase] et [TestCaseSource] pour tester plusieurs scénarios
- Organiser les données de test en JSON ou CSV
Mocking et testing asynchrone
- Intégrer Moq pour tester les dépendances isolées
- Écrire des tests pour les méthodes async avec async/await
Intégration dans pipelines CI/CD
- Exécuter les tests NUnit dans Azure Pipelines ou Jenkins
- Générer des rapports de coverage et d'exécution
Modalités et Inscription
Cette formation est proposée selon deux formules pour s'adapter au mieux à vos besoins :
Session régulière
Des sessions sont organisées à intervalles réguliers. Demandez les prochaines dates planifiées pour vous inscrire à la prochaine session.
Sur mesure & intra-entreprise
Vous souhaitez former vos équipes directement dans vos locaux ou adapter le programme technique à votre contexte d'entreprise ? Contactez-nous pour obtenir un devis personnalisé.