« [イベント] 告知 - 名古屋アジャイル勉強会 「テスト駆動開発体験ワークショップ」 (4/24, 名古屋市) | トップページ | [ブログ紹介] NUnit 2.5 の新機能: TestCaseSource, Values, Combinatorial/Sequential/Pairwise, Range/Random »

2010年4月21日 (水)

[ブログ紹介] NUnit 2.5 で追加された Assert.Throws

NUnit 2.5 で追加された機能のひとつ、 Assert.Throws() について紹介されています。

OPC Diary: NUnit 2.5 で追加された Assert.Throws での注意点
2010年03月03日

NUnit 2.5 から Assert.Throws というメソッドが追加されていて、 インラインでエクセプションのテストができるように拡張されています。

たとえば、 null を渡したら ArgumentException を投げ返して欲しいメソッド ExceptionDashimakuri() を作るためのテストを書くとします。 従来のやり方では、 次のように書けます。 ( 実行してみていないので、 間違いがあっても許してください。 )

try{
    ExceptionDashimakuri(null);
    Assert.Fail("例外が発生しなかった!");
}
catch(ArgumentException ex){
    Assert.AreEquals("a is Null !!", ex.Message);
}

これが、 Assert.Throws() を使うと…

   7:  [Test]
   8:  public void TestExceptionDashimakuri() {
   9:      string a = null;
  10:      var ex = Assert.Throws<ArgumentException>(
  11:              () => ExceptionDashimakuri(a)
  12:          );
  13:      Assert.That(ex.Message == "a is Null !!");
  14:  }

インラインで想定されている Exception が飛んできているか、 その後 Assert.That 等によってメッセージ内容が適切か、 Exception のソースが適切か等も確認することができます。

…と、 スマートに書けるわけです。

|

« [イベント] 告知 - 名古屋アジャイル勉強会 「テスト駆動開発体験ワークショップ」 (4/24, 名古屋市) | トップページ | [ブログ紹介] NUnit 2.5 の新機能: TestCaseSource, Values, Combinatorial/Sequential/Pairwise, Range/Random »

ブログ紹介」カテゴリの記事

<NUnit>」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [ブログ紹介] NUnit 2.5 で追加された Assert.Throws:

« [イベント] 告知 - 名古屋アジャイル勉強会 「テスト駆動開発体験ワークショップ」 (4/24, 名古屋市) | トップページ | [ブログ紹介] NUnit 2.5 の新機能: TestCaseSource, Values, Combinatorial/Sequential/Pairwise, Range/Random »