[ブログ紹介] 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 »
「ブログ紹介」カテゴリの記事
- [ブログ紹介] VS 内でNUnitのテストを実行する「Visual Nunit 2010」(2010.08.07)
- [ブログ紹介] Part Cover 紹介(2010.04.21)
- [ブログ紹介] NUnit 2.5 の新機能: TestCaseSource, Values, Combinatorial/Sequential/Pairwise, Range/Random(2010.04.21)
- [ブログ紹介] NUnit 2.5 で追加された Assert.Throws(2010.04.21)
- [ブログ紹介] TDD を評価した論文の紹介、 2題(2010.03.10)

コメント