什麼是單元測試(Unit Test)?
簡單來說,一個單元就是在程式當中最基本、最小的一個單位,最常見的是一個方法。單元測試就是為了去檢驗這個單元所執行的結果是否正確,換句話說,也就是去檢查程式的結果和程式設計師的預期規劃是否相同。
Unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers.
Ref: http://en.wikipedia.org/wiki/Unit_testing下載NUnit並且在Visual Studio專案中引入DLL
NUnit 下載連結:http://www.nunit.org/index.php?p=download
如果是要在Visual Studio裡面使用的話,建議可以下載bin的連結,這樣就不用自己重新compile了。
下載回來之後,如果想要在Visual Studio裡面撰寫測試程式,必須要引用nunit.framework這個dll,把他加到你的專案裡面:
實際撰寫NUnit測試程式碼
假設我們有一個計算機(Calculator)的程式,測試時是想要去檢查內部的方法是否正確。首先可以建立兩個Project,一個是放計算機的主程式(這裡的namespace是kevingo.Calculator),另外一個Project則是撰寫測試程式碼用(NUnitTestProject)。
首先建立一個計算機的程式:
public class Calculator
{
int result = 0;
public int Add(int a, int b)
{
result = a+b;
return result;
}
public int Sub(int a, int b)
{
result = a-b;
return result;
}
public int Multiple(int a, int b)
{
result = a*b;
return result;
}
public int Divide(int a, int b)
{
result = a/b;
return result;
}
}
在另外一個Project寫測試程式碼,這裡我偷懶一下,只先撰寫兩個測試方法來檢查Add和Sub的功能:
namespace NUnitTestProject
{
[TestFixture]
public class Program
{
Calculator c1 = new Calculator();
[Test]
public void TestAdd()
{
int addResult = c1.Add(10, 10);
Assert.AreEqual(20, addResult);
}
[Test]
public void TestSub()
{
int subResult = c1.Sub(10, 2);
Assert.AreEqual(8, subResult);
}
}
在撰寫測試程式碼的時候,記得先把Calculator這個Project Build成DLL引入到測試的Project中:
執行NUnit測試結果
接著我們實際執行測試的結果,nunit提供了GUI介面,讓使用者可以很方便的檢驗測試的結果,為了方便測試,在build測試程式碼的時候,可以設定啟動nunit的GUI:
在Compile的時候應該就會把NUnit的GUI給帶出來,接著選擇File中的Open Project,把build出來的DLL(這裡叫做NUnitTestProject.dll)給開啟執行就可以看到結果,如果你的測試程式是正確的,就會顯示綠色,如果有錯的話就是紅色的結果,像這裡代表TestAdd是正確而TestSub是有問題的,如此一來就可以針對錯誤來修正:
第一篇先紀錄到這裡,下一篇來看看NUnit裡面有什麼Attributes可以用。
0 意見:
張貼留言