Heim  >  Artikel  >  Backend-Entwicklung  >  Wie überprüft man Ausnahmen, die in C#-Komponententests ausgelöst werden?

Wie überprüft man Ausnahmen, die in C#-Komponententests ausgelöst werden?

WBOY
WBOYnach vorne
2023-08-27 10:49:06924Durchsuche

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

Wir können Ausnahmen in Unit-Tests auf zwei Arten überprüfen.

  • Verwenden Sie Assert.ThrowsException.
  • Verwenden Sie die ExpectedException-Eigenschaft.

Beispiel

Betrachten wir eine StringAppend-Methode, die getestet werden muss, um eine Ausnahme auszulösen.

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

Verwendung von 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");
      }
   }
}

Zum Beispiel verwenden wir Assert.ThrowsException, um die StringAppend-Methode aufzurufen und den Ausnahmetyp und die Ausnahmemeldung zu überprüfen. Der Testfall wird also bestanden.

Verwendung des ExpectedException-Attributs

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");
      }
   }
}

Beispielsweise verwenden wir das ExpectedException-Attribut und geben den Typ der erwarteten Ausnahme an. Da die StringAppend-Methode denselben Ausnahmetyp wie in [ExpectedException(typeof(Exception), „Test Exception“)] erwähnt auslöst, wird der Testfall bestanden.

Das obige ist der detaillierte Inhalt vonWie überprüft man Ausnahmen, die in C#-Komponententests ausgelöst werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen