同じようなテストコードを書くようなことがある。
テストを行うメソッドのパラメータに違う値を指定したり・・・・。
そこで、面倒くさいコード作成を簡単にできないかと思い。
NUnitを調べて[TestCase]属性を見つけた。
実際のシステム開発のテストコードに記載したことはないが
使えそうだなぁ~と思っている。
(テストコードを削減できると思う)
まぁ、くどくど説明するよりコードを見た方が分かりやすいとおもう。
-----------------------------------------------------
○サンプル
using System;
using NUnit.Framework;
namespace SampleTest
{
[TestFixture]
class TestClass
{
///
/// TestCaseに指定したパラメータがTest1のパラメータに指定されて
/// NUnitがテストしてくれる
/// 下記のようなにパラメータに指定してテストが行われる
/// Test1("A1","A",1)
/// Test1("B2","B",2)
/// Test1("C3","C",3)
///
[TestCase("A1","A",1)]
[TestCase("B2","B",2)]
[TestCase("C3","C",3)]
public void Test1(string result, string str, int num)
{
// string.Formatの戻り値がresultと同じかをテスト
Assert.AreEqual(result, string.Format("{0}{1}",str,num));
}
///
/// TestCaseに指定したパラメータがTest1のパラメータに指定されて
/// NUnitがテストしてくれる
/// 下記のようなテストが行われる。Test2の結果がResult= と同じかをチェックする
/// Test1("A",1)
/// Test1("B",2)
/// Test1("C",3)
///
[TestCase("A",1, Result = "A1")]
[TestCase("B",2, Result = "B2")]
[TestCase("C",3, Result = "C3")]
public string Test2(string str, int num)
{
// string.Formatの戻り値がresultと同じかをテスト
return string.Format("{0}{1}",str,num);
}
}
}
テストコードは、実装のコード量より、
コード量が多いので作成するが大変・・・・
今度、実際のテストコードで試してみて
どれだけテストコードを簡単に作成できるか試してみたいと思う。
では、さらば。
@some