ユニットテストを行うには(NUnitについて) C#にもUnitテスト用のフレームワークが存在します。
現在、NUnitというものがいちばんポピュラーなようです。
以下のサイトから入手できます。
http://nunit.org/
以下の例では、QuestionというクラスのUnitテストを実現しています。
手順は以下のとおりです。
1. NUnit.Frameworkネームスペースを使用できるようにする。
Visual C#ではAdd Referenceで.NETのタブからnunit.frameworkを選択することでプロジェクトに追加することができます。
2. テストコードを書く。テストファーストを実現するためにはテストコードから書きます。ただ、Visual Studioのコード補完機能を利用するには、ある程度アプリケーションコードを書いてからのほうが良い気もします。
テストコードの基本は、テストクラスに[TestFixture]、テスト用の関数に[Test]と記述します。具体的には、以下のコードを参考にしてください。
3. アプリケーションコードを書く。あとは、アプリケーション用のコードを書くだけです。
4. NUnitでテストをする。コンパイルがすべて通ったら、NUnitを使用してテストをします。NUnit GUIを立ち上げて、コンパイル済みのアプリケーションのプロジェクトファイルをオープンします。NUnitが自動的にテストコードを検出するので、あとは、Runボタンを押してテストをします。グリーンランプが付けばすべてのテスト結果は良好です。赤くなった部分があればコードを修正し、コンパイルした後、再びNUnitのRunボタンを押します。
本格的なテストを行うにはテストの設計や、いろいろと考えることもありますが、まずはできるところからユニットテストを始めましょう。
アプリケーションの修正時などに発生する、低レベルな人的ミスはほとんど簡単なテストでカバーできます。
// Unit Test Code
using System;
using NUnit.Framework;
namespace FaqBuilder.Test
{
[TestFixture]
public class QuestionTest
{
public QuestionTest()
{
}
/*
Test for load Faq data and getFaq() test for retrieving Faq data
*/
[Test]
public void equalsTest()
{
Question qa = new Question();
qa.Title = "Q";
qa.Answer = "PRECODE";
qa.Code = "CODE";
Assertion.AssertEquals(qa.Title, "Q");
Assertion.AssertEquals(qa.Answer, "PRECODE");
Assertion.AssertEquals(qa.Code, "CODE");
Assertion.Assert(qa.Title != "q");
Assertion.Assert(qa.Answer != "precode");
Assertion.Assert(qa.Code != "code");
}
}
}
// Original Class
using System;
namespace FaqBuilder
{
public class Question
{
private string title;
private string answer;
private string code;
public Question()
{
}
public string Title
{
get
{
return title;
}
set
{
this.title = value;
}
}
public string Answer
{
get
{
return answer;
}
set
{
this.answer = value;
}
}
public string Code
{
get
{
return code;
}
set
{
this.code = value;
}
}
public void Print()
{
System.Console.WriteLine(Title);
System.Console.WriteLine(Answer);
System.Console.WriteLine(Code);
}
}
}
目次に戻る
| Copyright(c) 2008 WoodenSoldier Software |
|