0Pricing
C# Academy · Leçon

Configuration de xUnit/MSTest et assertions

Découvrez la structure d’un test (Préparer-Agir-Vérifier), observez comment les assertions font échouer les tests et transposez ces notions aux attributs de MSTest/xUnit.

Configuration de xUnit/MSTest et assertions est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 3 leçons au total.

Qu’est-ce qu’un test unitaire ?

Objectif : écrire de petits tests unitaires répétables.

  • Un projet de tests séparé utilise le framework Microsoft de tests ou xUnit
  • Chaque test vérifie un comportement
  • Utilisez des noms clairs et des vérifications

Modèle AAA

Les tests suivent Organiser → Agir → Assert. Ici, nous simulons une vérification avec un contrôle simple.

using System;

public static class MathUtil
{
  // Method under test
  public static int Add(int a, int b)
  {
    return a + b;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    // Arrange
    int a = 2;
    int b = 3;
    int expected = 5;

    // Act
    int actual = MathUtil.Add(a, b);

    // Assert (manual check for this console demo)
    if (actual == expected)
      Console.WriteLine("PASS: Add returned " + actual);
    else
      Console.WriteLine("FAIL: expected " + expected + " but got " + actual);
  }
}

Comportement d’une vérification

Une vérification lève une exception en cas de différence. Les frameworks réels fonctionnent de manière similaire (API plus riche, meilleurs rapports).

using System;

public static class Assert
{
  public static void AreEqual(int expected, int actual)
  {
    if (expected != actual)
      throw new Exception("AreEqual failed: expected " + expected + ", actual " + actual);
  }

  public static void IsTrue(bool condition, string message)
  {
    if (!condition) throw new Exception("IsTrue failed: " + message);
  }
}

public static class MathUtil
{
  public static int Mul(int a, int b) { return a * b; }
}

public class Program
{
  public static void Main(string[] args)
  {
    try
    {
      int r = MathUtil.Mul(2, 4);
      Assert.AreEqual(8, r);                 // pass
      Assert.IsTrue(r % 2 == 0, "even");     // pass
      Console.WriteLine("All assertions passed.");
    }
    catch (Exception ex)
    {
      Console.WriteLine("TEST FAILED: " + ex.Message);
    }
  }
}

Exemple de tests réussis

Chaque test vérifie un comportement. Dans le framework Microsoft de tests ou dans xUnit, une vérification Assert qui échoue marque le test en rouge.

using System;

public static class StringUtil
{
  public static string Repeat(string s, int n)
  {
    if (n < 0) throw new ArgumentOutOfRangeException("n");
    string r = "";
    for (int i = 0; i < n; i++) r += s;
    return r;
  }
}

public static class Assert
{
  public static void AreEqual(string expected, string actual)
  {
    if (expected != actual)
      throw new Exception("AreEqual failed: expected [" + expected + "], actual [" + actual + "]");
  }
}

public class Program
{
  static void TestRepeat_Happy()
  {
    string got = StringUtil.Repeat("ab", 3);
    Assert.AreEqual("ababab", got); // pass
  }

  static void TestRepeat_EmptyTimesZero()
  {
    string got = StringUtil.Repeat("x", 0);
    Assert.AreEqual("", got); // pass
  }

  public static void Main(string[] args)
  {
    try { TestRepeat_Happy(); Console.WriteLine("PASS: Happy"); } catch (Exception ex) { Console.WriteLine("FAIL: Happy -> " + ex.Message); }
    try { TestRepeat_EmptyTimesZero(); Console.WriteLine("PASS: Zero"); } catch (Exception ex) { Console.WriteLine("FAIL: Zero -> " + ex.Message); }
  }
}

Correspondance entre les frameworks de tests

Notions de base du framework Microsoft de tests :

  • [ClasseDeTest] sur la classe
  • [TestMethod] sur chaque test
  • Assert.AreEqual/IsTrue/AreNotEqual…

Notions de base de xUnit :

  • [Fait] pour une méthode de test
  • Assert.Égal/Vrai/Faux…
  • Aucun attribut de classe de test n’est nécessaire

Conseils de nommage et de portée

Conseils :

  • Nommez les tests comme Méthode_Scénario_RésultatAttendu
  • Une seule vérification ou un seul comportement par test
  • Gardez les tests courts et indépendants

Les vérifications provoquent les échecs

Vérification rapide : qu’est-ce qui fait réellement échouer un test unitaire dans le framework Microsoft de tests ou dans xUnit ?

Récapitulatif

Récapitulatif : utilisez le modèle AAA, comparez le résultat attendu au résultat réel avec des vérifications et faites la correspondance avec le framework Microsoft de tests ([TestMethod]) ou xUnit ([Fait]).

Questions Fréquemment Posées

La leçon « Configuration de xUnit/MSTest et assertions » est-elle gratuite ?

Oui — le texte complet de « Configuration de xUnit/MSTest et assertions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « Configuration de xUnit/MSTest et assertions » ?

Découvrez la structure d’un test (Préparer-Agir-Vérifier), observez comment les assertions font échouer les tests et transposez ces notions aux attributs de MSTest/xUnit. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C# Academy ?

Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 3.

Combien de temps prend la leçon « Configuration de xUnit/MSTest et assertions » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?

Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Configuration de xUnit/MSTest et assertions
  2. Doublures via des interfaces et constructeurs de données de test
  3. Débogage des tests en échec
← Retour à C# Academy