NUnitの試用

 NUnitSourceForgeからダウンロード(http://sourceforge.net/projects/nunit)しました.バージョンは2.0.インストーラで簡単にインストールされ,Program Filesにふつうに追加されました.
 さっそくサンプル的なものを作ろうとしたのですが,そもそも,.NET自体の使い方がよくわからない.まずはソリューションとプロジェクトという概念があるようです.ソリューションの中にプロジェクトがあって,プロジェクト単位でビルドの順番が変えられたりするみたいです.とすると,アプリケーションごとにソリューションを作ればいいのでしょうね.まあ,ソリューションって名前になってるくらいだからそうなんでしょうけれど.
 というわけで,サンプルのソリューションを作ることにしたんですが,NUnitの説明書を見ると,実行可能ファイルを別ディレクトリにするために,ちょっと工夫をしているようです.sampleというディレクトリ下にbinというディレクトリを作成し,それからIDE側でsrcというディレクトリ名でソリューションを定義してみました(このときsrcというディレクトリが掘られる).次にプロジェクトを本体coreとテストクラス群testと二つ追加しました.


sample
┣ bin
┗ src
┣ core
┗ test
さて,これだけだとだめで,IDE上からNUnitを呼び出すところと,それを使う設定が必要でした.

  1. "Core"と"Test"とのプロパティを選び,アセンブリ名を"Sample.core"と"Sample.Tests"にそれぞれ書き換え
  2. テストプロジェクトを「スタートアッププロジェクト」に設定し,コマンドライン引数を"/assembly:Sample.Tests.dll"と定義
  3. スタートアプリケーションをNUnitGUI実行ファイルとして設定
  4. testのほうの参照設定に"Sample.Core"と"nunit.framework.dll"を追加

で,さっそくテストを書いてみました.



using System;
using NUnit.Framework;
using Sample.Core;

namespace Sample.Tests
{
[TestFixture]
public class TestMain
{
private Main sample;
public TestMain()
{
}

[SetUp]
public void SetUp()
{
sample = new Main(4);
}

[Test]
public void TestGetMethod()
{
sample.Add(7);
Assertion.AssertEquals(11,sample.Val);

}
}
}

サンプルによくある足し算をするだけのどうでもいいクラスです.それにしてもどうしてカッコのたびに改行をしなければならないのですか! まあ,スタイルだからべつに直しちゃえばいいのだけど……
で,テストされる側のクラスがこんな感じ.



using System;

namespace Sample.Core
{
public class Main {
private int val;
public int Val {
get{return val;}
set{val = value;}
}

public Main(int initVal) {
val = initVal;
}

public void Add(int val2){
val = val + val2;
}
}
}

うーん,いかにもサンプル作りましたって感じですね.