Maison  >  Article  >  développement back-end  >  Comment vérifier les exceptions levées dans les tests unitaires C# ?

Comment vérifier les exceptions levées dans les tests unitaires C# ?

WBOY
WBOYavant
2023-08-27 10:49:06921parcourir

如何验证 C# 单元测试中抛出的异常?

Nous pouvons vérifier les exceptions dans les tests unitaires de deux manières.

  • Utilisez Assert.ThrowsException
  • Utilisez la propriété ExpectedException.

Exemple

Considérons une méthode StringAppend qui doit être testée pour lever une exception.

using System;
namespace DemoApplication {
   public class Program {
      static void Main(string[] args) {
      }
      public string StringAppend(string firstName, string lastName) {
         throw new Exception("Test Exception");
      }
   }
}

Utilisation de Assert.ThrowsException

using System;
using DemoApplication;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DemoUnitTest {
   [TestClass]
   public class DemoUnitTest {
      [TestMethod]
      public void DemoMethod() {
         Program program = new Program();
         var ex = Assert.ThrowsException<Exception>(() => program.StringAppend("Michael","Jackson"));
         Assert.AreSame(ex.Message, "Test Exception");
      }
   }
}

Par exemple, nous utilisons Assert.ThrowsException pour appeler la méthode StringAppend et vérifier le type d'exception et le message. Le cas de test réussira donc.

Utilisation de l'attribut ExpectedException

using System;
using DemoApplication;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DemoUnitTest {
   [TestClass]
   public class DemoUnitTest {
      [TestMethod]
      [ExpectedException(typeof(Exception), "Test Exception")]
      public void DemoMethod() {
         Program program = new Program();
         program.StringAppend("Michael", "Jackson");
      }
   }
}

Par exemple, nous utilisons l'attribut ExpectedException et spécifions le type d'exception attendue. Étant donné que la méthode StringAppend renvoie le même type d'exception que celui mentionné dans [ExpectedException(typeof(Exception), "Test Exception")], le scénario de test réussira.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer