[ブログ紹介] 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 »
「ブログ紹介」カテゴリの記事
- [ブログ紹介] Writing Unit Tests in F#(2011.11.09)
- [ブログ紹介] VS と連携 *しない* NUnit の使い方(2011.08.01)
- [ブログ紹介] 三角形問題で必要なテストケース数(2011.06.08)
- [ブログ紹介] CppUnit を Visual Studio C++ 2010 でビルドするには(2011.06.06)
- [ブログ紹介] TDDBC ポータル (Hiki)(2011.03.11)
「<NUnit>」カテゴリの記事
- [NEWS] NUnit Test Adapter for VS 2012 and 2013 1.0 RC(2013.09.17)
- [NEWS] NUnit 2.6.2 リリース ~ async/await に対応!(2012.11.16)
- [NEWS] NUnit 2.6.1 リリース ~ NuGet に対応(2012.08.17)
- [記事紹介] CodeZine ~ C#で始めるテスト駆動開発 第4回/第5回(2012.07.10)
- [記事紹介] CodeZine ~ C#で始めるテスト駆動開発 第2回/第3回(2012.04.13)
この記事へのコメントは終了しました。
コメント