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
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
- Configuration de xUnit/MSTest et assertions
- Doublures via des interfaces et constructeurs de données de test
- Débogage des tests en échec