C#
 Computer >> コンピューター >  >> プログラミング >> C#

ユニットテスト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")]で説明されているのと同じタイプの例外をスローするため、テストケースは合格します。


  1. 私のウェブサイトはハッキングされていますか? Web サイトがハッキングされているかどうかを確認する方法

    「私のウェブサイトはハッキングされたのではないか? 」 それとも、何かおかしいことに気づいたからといって、ただ心配しているだけですか?いずれにせよ、パニックにならないでください。問題を理解しようとすることで、あなたはすでに先を行っています。 毎週、Google は 20,000 を超える Web サイトをブラックリストに登録し、50,000 の Web サイトにマルウェアのフラグを立てています。このことを考えると、セキュリティ アラートによって頭痛の種が半減したかもしれません。 ただし、まず、MalCare で WordPress サイトをスキャンして、Web サイトがハッキン

  2. 「このショートカットが参照するアイテムは変更されました」エラーを修正する方法

    対応するショートカット アイコンを使用して、Windows アプリケーションを開くことがよくあります。ただし、このショートカットが参照するオブジェクトは変更または移動されており、ある日クリックするとエラー通知が表示されます。この問題の根本的な原因は何ですか?どのように修正しますか?この問題のさまざまな理由は次のとおりです: 対象のソフトウェアが元のフォルダから取り出されたか、破棄された。 マルウェアまたは破損したサードパーティ製アプリがデバイスに存在します。 お使いのコンピュータのシステム ファイルが破損しているか見つからない パスをブロックしている特定のアクティブなシステム保護ソリューショ