ホームページ  >  記事  >  バックエンド開発  >  C# 単体テストでスローされた例外を確認するにはどうすればよいですか?

C# 単体テストでスローされた例外を確認するにはどうすればよいですか?

WBOY
WBOY転載
2023-08-27 10:49:06977ブラウズ

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

単体テストの例外は 2 つの方法で検証できます。

  • Assert.ThrowsException を使用する
  • ExpectedException プロパティを使用します。

例外をスローするかどうかをテストする必要がある StringAppend メソッドを考えてみましょう。

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

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

たとえば、Assert.ThrowsException を使用して StringAppend メソッドを呼び出し、例外の種類とメッセージを確認します。したがって、テストケースは合格します。

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

たとえば、ExpectedException 属性を使用して、予期される例外の種類を指定します。 StringAppend メソッドは [ExpectedException(typeof(Exception), "Test Exception")] で説明したのと同じタイプの例外をスローするため、テスト ケースは成功します。

以上がC# 単体テストでスローされた例外を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。