题记:
写了这么久代码,从来没写过单元测试。刚开始只是看结果(黑盒测试),主观感受就是对与否。找不到问题所在。后来渐渐可以学会断点调试以及Debug单步调试。查找问题不会束手无策更加精准。再后来听说过自动化测试以及异常处理。原来还可以自己写个Tool和查看Log捕获问题。现在又学到了一个新东西单元测试,避免了编码过程中容易忽略的小问题。
单元测试(unit testing):
是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
创建单元测试:
以
移动“零”代码为例进行测试:
VS2013下可以利用扩展和新建添加Unit General Test插件,可直接添加单元测试工程。
VS2015集成了单元测试功能,可直接在所需要的Class上新建测试工程。
Example:
namespace MoveZero.Tests
{
[TestClass()]
public class MoveZeroTests
{
[TestMethod()]
public void MoveZeroesTest()
{
Assert.Fail();
}
}
}
测试代码如下:
public void MoveZeroesTest()
{
MoveZero test = new MoveZero();
int[] numsInA = { 0, 1, 0, 3, 12, 0 };
int[] numsOutA = { 1, 3, 12, 0, 0, 0 };
var numsIn = test.MoveZeroes(numsInA);
var numsOut = new LinkedList<int>(numsOutA);
Assert.AreEqual(numsIn, numsOut);
}
Assert 下有多种验证函数,可以参考 MSDN