C#でテストする(NUnit)

ブックマークの整理をしていたら、やっぱり自分でもまとめておかないといけない気がしたので。
案の定いろいろ詰まったわけで。


環境はVS2010Express / NUnit2.6.2

手順

(1)プロジェクトを作る
(2)テストプロジェクトを作って、参照設定する

「プロジェクト」タブで対象プロジェクトを追加するのと、「参照」タブでnunit.framework.dllを探して追加する。

(3)テストを書く
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using NUnit.Framework;
using ClassLibrary1;

namespace ClassLibrary1Tests
{
    [TestFixture]
    public class BankAccountTest
    {
        private BankAccount bankAccount_;

        [SetUp]
        public void 準備()
        {
            bankAccount_ = new BankAccount(1000);
        }

        [Test]
        public void 残高()
        {
            Assert.AreEqual(1000, bankAccount_.Amount);
        }

        [Test]
        public void 預け入れる()
        {
            bankAccount_.Deposit(200);
            Assert.AreEqual(1200, bankAccount_.Amount);
        }

        [Test]
        public void 引き出す()
        {
            bankAccount_.Withdraw(300);
            Assert.AreEqual(700, bankAccount_.Amount);
        }
    }
}
(4)本体を書く
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary1
{
    public class BankAccount
    {
        private int amount_;

        public BankAccount(int value)
        {
            amount_ = value;
        }

        public int Amount
        {
            get { return amount_; }
        }

        public void Deposit(int value)
        {
            amount_ += value;
        }

        public void Withdraw(int value)
        {
            amount_ -= value;
        }
    }
}


できましたー。

メモ

むしろこっちをメモしたい。

(1)expressだからか、デフォルトではReleaseビルドしかできなくなってるので、VSの設定を変更。

[ツール]-[オプション...]
[プロジェクトおよびソリューション]-[全般]
[ビルド構成の詳細を表示]にチェック。

(2)対象がコンソールアプリの場合、テストできない?

とりあえずプロジェクトをクラスライブラリにしたらテストできたのでいいけど。

SetUp : System.BadImageFormatException : ファイルまたはアセンブリ 
'ConsoleApplication03, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'、
またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。