[NUnit 2.5] TestCaseAttribute の使いかた
NUnit 2.5 で増えた機能の一つに TestCase 属性があります。
御本家のドキュメントを見ると…
[TestCase(12,2, Result=6)]
[TestCase(12,4, Result=3)]
public int DivideTest(int n, int d)
{
return( n / d );
}
…こんな使いかたが載っています。
属性の引数が、 テストメソッドの引数として順次渡されるようですね。
通常のテストメソッドは void ですが、 値を返すようにしてやると、 属性の名前付き引数 Result と比較してくれるみたいです。
属性の名前付き引数としては、 ほかに TestName とか ExpectedException とかが取れるようです。
ということで、 試行錯誤してみました f(^^;
こんな風に書けます。
[Test(Description = "GetGreet() のテスト5: 20:00 <= t < 24:00")]
[TestCase(20, 0, 0, 0, Result = "Good night", TestName = "t=20:00")]
[TestCase(22, 0, 0, 0, Result = "Good night", TestName = "t=22:00")]
[TestCase(23, 59, 59, 999, Result = "Good night", TestName = "t=23:59:59.999")]
public string GetGreetTest05_20To24(int h, int m, int s, int ms)
{
DateTime input = new DateTime(2009, 6, 9, h, m, s, ms);
return MyClass.GetGreet(input);
}
[Test(Description = "GetGreet() のテスト6: t == 24:00")]
[TestCase(24, 0, 0, 0, ExpectedException = typeof(ArgumentOutOfRangeException), TestName = "t=24:00")]
public string GetGreetTest06_24(int h, int m, int s, int ms)
{
DateTime input = new DateTime(2009, 6, 9, h, m, s, ms);
return MyClass.GetGreet(input);
}
※ この 2つのテストメソッドは、 ひとつにまとめて書くこともできます。 テストケースごとに 1メソッドという書き方をしたので、 分けてあります。
引数を変えて何回もテストケースを走らせるときには、 すごく便利です。 上側の GetGreetTest05_20To24() では、 テストは引数を変えて 3回実行されます。
Visual Studio 2008 にも似たような仕掛けはありますが、 テストが、 データベース ( ODBC ドライバでつながるなら何でもいいので、 Excel も使える ) とテスコードに分かれてしまうのが、 ( このくらい簡単なテストだと ) 泣き所。
なお、 属性の引数には定数しかダメなので、 [TestCase(new DateTime(… とは書けませんでした。
TestName は、 NUnit GUI に表示される ( 下図参照 ) ので、 重宝しそうです。
Description は、 NUnit GUI ではプロパティを出さないと見えないので、 あまり役に立たないかもしれませんね。
テストメソッド中で例外が出る場合は、 Result の代わりに ExpectedException を書いておけば OK です。
| 固定リンク
« [プログラム設計事始] メソッドの外部設計とテストファースト(2) ~ なんでもユニットテストで記述できるか? | トップページ | MSDN ライブラリに VS2010 のドキュメントが公開されている »
「-プログラミング ( 2009.04-06 )」カテゴリの記事
- はじめての Silverlight 2.0(2009.05.13)
- Silverlight 3 新機能ガイド(2009.06.02)
- NUnit 2.5 がリリースされているので、 Windows 7 RC に入れてみた。(2009.05.25)
- NUnit の "Hello, world!" ~ C# 2008 Express + NUnit 2.5 で、 テストファーストの Step by Step(2009.05.27)
- [.NET] WPF Toolkit に、 グラフ チャートが追加(2009.06.29)
掲示板
blog


コメント