Description

Le cycle de développement d'une application en C#, que ce soit pour du web, bureau ou encore mobile, passe par de nombreux stades. Lors de la conception, des algorithmes sont écrits et doivent être testés. Cependant, il est possible d'être très efficace à la fois pour écrire et découvrir ces algorithmes que pour tester qu'ils fonctionnent bien.

Pour atteindre cet objectif, il faut adjoindre au processus de développement une méthodologie de tests. Les tests automatisés sont codés de telle sorte qu'ils vont vérifier le fonctionnement d'un algorithme sans qu'une intervention humaine soit nécessaire. Pour qu'un test soit efficace, il est nécessaire qu'il couvre efficacement le code qu'il teste, et cela n'est possible qu'en mettant la production du test en premier lieu !

 

Dans ce cours, nous découvrirons les méthodologies et outils de test afin de pouvoir appliquer ces pratiques avec le langage C#. Nous commencerons par les tests unitaires, de plus bas niveau, en appliquant la méthode TDD (Test Driven Development) qui permet de découvrir l'algorithme par le biais des tests, tout en le sécurisant. Cela permettra de voir comment mettre en place des tests sur un projet et écrire plusieurs tests de façon efficace. Une fois les bases acquises, nous irons un cran plus loin en améliorant la qualité de nos tests grâce à des outils supplémentaires, permettant de simuler par exemple des ressources externes (comme une base de données) ou encore rendre un test plus "parlant". Nous utiliserons un outil pour analyser si notre couverture de tests est optimale et que nos tests sont pertinents.

 

Une fois les fondamentaux acquis, nous irons un cran plus loin en découvrant le principe de test d'intégration, qui vise à lancer partiellement le système pour voir s'il s'intègre correctement avec les autres éléments, comme les serveurs web ou encore les bases de données. Finalement, il sera temps de voir les tests e2e (end-to-end) permettant de lancer le système de façon globale et de simuler des interactions utilisateurs de bout en bout.

La route est longue, mais une fois les concepts acquis à la fin de ce cours, utiliser une méthodologie de test dans votre travail quotidien vous rendra plus efficace et plus serein, car le code essentiel sera garanti par des tests automatisés.

Au menu 🍽

  • ▶️TP - énoncé
  • ▶️TP - corrigé
  • ▶️Améliorer la lisibilité des tests
  • ▶️Le problème des dépendances fortes
  • ▶️La solution des dépendances fortes
  • ▶️Découverte du package Moq
  • ▶️Aller plus loin avec Moq
  • ▶️Moq avancé + Autofixture
  • ▶️Afficher des informations sur la sortie des tests
  • ▶️La parallélisation des tests
  • ▶️Tests automatiques avec Live Unit Testing
  • ▶️Tests automatiques avec NCrunch (voir gratuitement)
  • ▶️Analyser la couverture de code avec Visual Studio
  • ▶️Configurer l'analyse de couverture de code avec Visual Studio
  • ▶️Analyser la couverture de code SANS Visual Studio
  • ▶️Introduction au projet BookStore et au TP 2
  • ▶️Corrigé - Réarchitecture du projet pour le rendre testable
  • ▶️Corrigé - Implémentation du service de réservation (1/2)
  • ▶️Corrigé - Implémentation du service de réservation (2/2)
  • ▶️Corrigé - Program.cs (finalisation du projet console)
  • ▶️Introduction aux tests d'intégration
  • ▶️Intégration avec les objets du framework (console)
  • ▶️Intégration avec le système de fichiers
  • ▶️Démonstration d'installation d'EF Core pour les tests avec base de données
  • ▶️Intégration avec la base de données (EF Core et SQLite)
  • ▶️Partager du code avec les fixture et IClassFixture
  • ▶️Introduction aux tests d'intégration ASP.NET WebApi
  • ▶️Gérer le lancement de l'API par code grâce à WebApplicationFactory
  • ▶️Remplacement des services dans WebApplicationFactory
  • ▶️Utiliser Docker pour stocker la base de données pour les tests
  • ▶️Sortie de Docker 4.10
  • ▶️Automatiser les conteneurs par code
  • ▶️Enchaînement des tests dans la vidéo précédente
  • ▶️Présentation du TP BookStore API
  • ▶️Démonstration de l'API
  • ▶️Corrigé - Mise en place initiale et 1er test
  • ▶️Corrigé - BooksController
  • ▶️Corrigé - ReservationsController
  • ▶️Introduction aux tests E2E
  • ▶️Tester les interactions utilisateurs sur les éléments
  • ▶️Dockeriser notre application pour automatiser
  • ▶️Automatiser la dockerisation et l'exécution de l'application testée
  • ▶️Mise en place de l'infrastructure avec BDD pour les tests UI
  • ▶️Faire les tests d'UI sur une table liée à une base de données
  • ▶️Introduction au TP
  • ▶️Corrigé TP - Création de livre
  • ▶️Corrigé TP - Validation et suppression

Avis