前一章我們簡單介紹了NUnit的入門示例《一步一步學(xué)NUnit(一)》,讓大家對(duì)NUnit有個(gè)簡單的認(rèn)識(shí)。
NUnit的使用是非常簡單的,但是它在項(xiàng)目中使用時(shí),有許多佳實(shí)踐。這章我們把上一章沒有講到的NUnit的一些配置和特性介紹一下。
要想熟練地使用NUnit還是要在實(shí)踐中使用和體會(huì),單純地學(xué)習(xí)知識(shí)點(diǎn)是沒有用的。
好,不再廢話了。繼續(xù)上一章的內(nèi)容。
在Visual Studio 2008 中打開上一章的示例,Calculator類有4個(gè)簡單的方法:加、減、乘、除。CalculatorTest類中的四個(gè)方法是Calculator類四個(gè)方法的單元測(cè)試。
[TestFixture]
public class CalculatorTest
...{
[Test]
public void TestAdd()
...{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Add(2, 3);
Assert.AreEqual(expected, actual);
}
[Test]
public void TestMinus()
...{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Minus(10, 5);
Assert.AreEqual(expected, actual);
}
[Test]
public void TestMultiply()
...{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Multiply(1, 5);
Assert.AreEqual(expected, actual);
}
[Test]
public void TestDivide()
...{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Divide(25, 5);
Assert.AreEqual(expected, actual);
}
}
這里一定要注意,TestAdd()、TestMinus()、TestMultiply()和TestDivide()方法沒有任何關(guān)系,也是說單元測(cè)試中,所有的測(cè)試方法都是獨(dú)立的。各個(gè)方法之間沒有依賴性,刪除任何一個(gè)單元測(cè)試方法,對(duì)其它的測(cè)試不會(huì)有任何影響。
上一章中,我們已經(jīng)介紹了[TestFixture]和[Test],現(xiàn)在我們?yōu)檫@個(gè)類新增一個(gè)方法。
[SetUp]
public void InitMethod()
{
Console.WriteLine("Initialization method");
}
重新生成項(xiàng)目,再運(yùn)行NUnit,選中"CalculatorTest"進(jìn)行單元測(cè)試:
切換到NUnit的"Console.Out"中,我們看到"Initialization method"出現(xiàn)了4次,如果只選中一個(gè)測(cè)試方法:
我們看到,這時(shí)只出現(xiàn)一次的"Initialization method"。[SetUp]的意思是指在運(yùn)行每個(gè)測(cè)試方法前執(zhí)行它。相應(yīng)的,有開始必然有結(jié)束,[TearDown]是指在每個(gè)測(cè)試方法結(jié)束后運(yùn)行。