C#でテストする(MSTest)

折角なので、以前調べてそれきりだったのを一応自分で書いてみる。


環境は VS2010Ultimate。なので自宅PCでは無理。

手順

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

「プロジェクト」タブで対象プロジェクトを追加する

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

using ClassLibrary1;

namespace TestProject1
{
    /// <summary>
    /// BankAccountTest の概要の説明
    /// </summary>
    [TestClass]
    public class BankAccountTest
    {

/* 中略 */

        private BankAccount bankAccount_;

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

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

        [TestMethod]
        public void 引き出す()
        {
            bankAccount_.Withdraw(200);
            Assert.AreEqual(800, bankAccount_.Amount);
        }

        [TestMethod]
        public void 預け入れる()
        {
            bankAccount_.Deposit(300);
            Assert.AreEqual(1300, bankAccount_.Amount);
        }
    }
}

属性が微妙にNUnitと違う。

(4)本体を書く

NUnitと同じなので省略。


できましたー。

メモ

コンソールアプリのテストができない?とか書いてたことについて、今回も同じことをやる過程で、そもそもコンソールアプリを参照設定すること自体がなんか変だということに気が付いた。


MSTestはVS統合されているだけあって、クリックでドンもできるし、ショートカットもできるし楽ちん。と思いきや、2ステップのキーバインドがちょっと。Ctrl+R,AをCtrl+R,Ctrl+Aと押してしまうと、赤出た時にいちいちデバッガで止まってしまう。