UnitRun
前回(id:seiunsky:20061130:1164909243)の続き
テストメソッドの作成
- テスト用プロジェクトをテスト対象ソリューションに追加
- テスト用プロジェクトにnunit.frameworkを追加(テスト用プロジェクト右クリック→参照の追加→.NETタブにある)
- テスト用プロジェクトにテスト対象プロジェクトの追加(テスト用プロジェクト右クリック→参照の追加→プロジェクトタブにある)
- テストコードを書く(テストメソッドを作成するには NUnit.Frameworkをusingする)
このような手順で行えばテストコードを書くことができる。
以下のコードは sum.cs の sumクラスをテストすると時のテストクラス
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using calc;
namespace calcTest
{
/// <summary>
/// sum.csテスト用クラス
/// </summary>
[TestFixture]
public class sumTest
{
sum s;
/// <summary>
/// テストクラスで最初の一回目に実行されるクラス。
/// 必要なデータの初期化などをしておく。
/// </summary>
[TestFixtureSetUp]
protected void sumInit()
{
s = new sum();
}
/// <summary>
/// 実際のテストクラス
/// </summary>
[Test]
public void sumTest1()
{
Assert.AreEqual(30, s.sumCalc(10, 20));
}
}
}気をつけるのはテスト用クラスの先頭に[TestFixture]属性を着けるコトと、テストクラス自身も public な可視性になっている必要があるということ。
じゃあResharper UnitRunで実行してみよう
上記のようなテストメソッドを書いていると画面の行番号やブレークポイントの表示される場所あたりに、変なマークで出現することに気が付くと思う。
そのマークを左クリックし、Runを選択すれば Reshaper UnitRun の実行画面が表示されるはずだ*1。
で、Runを実行するとテストプログラムを流すだけだけど、ブレークポイントを仕掛けてからDebugで実行するとテストプログラムをステップ実行でトレースすることが出来る。
いや、それにしてもResharperのUIは良いね。
NUnitのデフォルトのヤツはちょっとダサいし、VS2005とは別のアプリになってしまうので使い勝手が悪い。それに(もうあまり覚えてないけど)TestDrivenは成功・失敗の色とかが出なくてすごいシンプルだった記憶がある。
それに比べると使い方も簡単で、見た目も良く、なおかつVS2005と連動してくれるこのツールはディ・モールト良いね!

追記:アプリケーションの実行でうまく行かない場合
スタートアッププロジェクトの設定が正しくない可能性がある。
- プロジェクトエクスプローラ上のメインのプロジェクト上で右クリック→スタートアッププロジェクトに設定を選択
- テスト用プロジェクトを右クリック→プロパティを選択
- 出力の種類をクラスライブラリに変更
これで大丈夫だと思う。
追記2:NUnitのマニュアル
Exceptionを吐くテストはどうやってやるのか? などの使い方については以下が参考になると思う。
http://www.objectclub.jp/community/XP-jp/xp_links/NUnitUsersGuidebookVer2.pdf
*1:またはソリューションエクスプローラのテスト用プロジェクトを右クリックしても良い