Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để xác minh một ngoại lệ đã được đưa ra trong C # thử nghiệm đơn vị?

Có hai cách để chúng tôi có thể xác minh một ngoại lệ trong kiểm thử đơn vị.

  • Sử dụng Assert.ThrowsException
  • Sử dụng Thuộc tính Ngoại lệ Dự kiến.

Ví dụ

Hãy để chúng tôi xem xét một phương thức StringAppend đưa ra một ngoại lệ cần được kiểm tra.

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

Sử dụng 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");
      }
   }
}

ví dụ, chúng tôi đang gọi phương thức StringAppend bằng Assert.ThrowsException và loại ngoại lệ và thông báo được xác thực. Vì vậy, trường hợp thử nghiệm sẽ vượt qua.

Sử dụng thuộc tính ngoại lệ mong đợi

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

ví dụ, chúng tôi đang sử dụng thuộc tínhpectException và chỉ định loại ngoại lệ mong đợi. Vì phương thức StringAppend ném cùng một loại ngoại lệ được đề cập trong [Dự kiến ​​ngoại lệ (typeof (Ngoại lệ), "Ngoại lệ Thử nghiệm")] nên trường hợp thử nghiệm sẽ vượt qua.