Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengesahkan pengecualian yang dilemparkan dalam ujian unit C#?

Bagaimana untuk mengesahkan pengecualian yang dilemparkan dalam ujian unit C#?

WBOY
WBOYke hadapan
2023-08-27 10:49:06977semak imbas

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

Kami boleh mengesahkan pengecualian dalam ujian unit dalam dua cara.

  • Gunakan Assert.ThrowsException
  • Gunakan harta ExpectedException.

Contoh

Mari kita pertimbangkan kaedah StringAppend yang perlu diuji untuk melontar pengecualian.

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

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

Sebagai contoh, kami menggunakan Assert.ThrowsException untuk memanggil kaedah StringAppend dan mengesahkan jenis pengecualian dan mesej. Jadi kes ujian akan lulus.

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

Sebagai contoh, kami menggunakan atribut ExpectedException dan menentukan jenis pengecualian yang dijangkakan. Memandangkan kaedah StringAppend membuang jenis pengecualian yang sama seperti yang dinyatakan dalam [ExpectedException(typeof(Exception), "Test Exception")], kes ujian akan lulus.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan pengecualian yang dilemparkan dalam ujian unit C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam