NUnit TestCaseを使う | パークのソフトウエア開発者ブログ|ICT技術(Java・Android・iPhone・C・Ruby)なら株式会社パークにお任せください

パークのソフトウエア開発者ブログ|ICT技術(Java・Android・iPhone・C・Ruby)なら株式会社パークにお任せください

開発の解決方法や新しい手法の情報を、パークのエンジニアが提供します。パークのエンジニアが必要な場合は、ぜひお気軽にお問い合わせ下さい。 株式会社パーク:http://www.pa-rk.co.jp/

開発をしているとテストを行うが、テストを自動化していると
同じようなテストコードを書くようなことがある。

テストを行うメソッドのパラメータに違う値を指定したり・・・・。

そこで、面倒くさいコード作成を簡単にできないかと思い。
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