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:またはソリューションエクスプローラのテスト用プロジェクトを右クリックしても良い