我们再为除法写一个单元测试方法:
[Test]
public void TestDivide()
{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Divide(25, 5);
Assert.AreEqual(expected, actual);
}
public void TestDivide()
{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Divide(25, 5);
Assert.AreEqual(expected, actual);
}
重新生成NUnitTestTest项目,NUnit会自动把TestDivide方法加进去。
再点"Run",通过测试。大家都知道除法中除数不能为0,如果这里除数是0呢?会有什么样的结果?
[Test]
public void TestDivide()
{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Divide(25, 0);
Assert.AreEqual(expected, actual);
}
public void TestDivide()
{
Calculator cal = new Calculator();
int expected = 5;
int actual = cal.Divide(25, 0);
Assert.AreEqual(expected, actual);
}
生成项目并重新运行单元测试:
测试没有通过 “NUnitTestTest.CalculatorTest.TestDivide:System.DivideByZeroException : 试图除以零。”这时,我们要返回到Calculator类中修改Divide方法使之除数为0时返回其它的值。
NUnit第一个简单示例就先到这里,在NUnit的官网也有简单教程,大家可以看看。
在单元测试中,我们在做正面的测试的同时也要做一些反面测试,这样才能让我们的代码更健壮。