单元测试跟软件设计一样,有一些常用的模式,这篇文章是介绍一些常用的模式,其中的示例是C#代码,都比较简单,我想大家都能看懂。下面进入正题:
  1、准备,执行,断言(Arrange,Act,Assert)。这种模式是非常常见的,套用这种模式进行单元测试通常的做法如下:
  1)准备测试环境,测试数据等
  2)执行被测试方法
  3)用断言来验证执行结果
  下面是一段测试代码,被测方法的功能是把字符串中每个单词的首字母转为大写,特殊字符用下划线替代。
  [TestMethod()]
  public void CapitalizeTest()
  {
  //准备数据
  string input="hello world!";
  string expected="HelloWorld_";
  //执行测试
  string actual;
  actual=TextHelper.Capitalize(input);
  //验证结果
  Assert.AreEqual(expected,actual);
  }
  2、构造函数测试。这种模式适合对类中某些特殊的属性进行测试,被测的属性都有一个特点–它们都是不变量;例如数组的初始化以后,其容量是不会变化的,无论这个数组对象被什么样的外部方法调用。一般的做法如下:
  1)创建一个实例
  2)对该实例进行外部调用
  3)用断言来验证执行结果
  下面是一段代码;首先创建一个数组,然后使用该数组,后验证该数组的大小有没有变化。
  [TestMethod]
  public void TestInvariant()
  {
  //创建一个实例
  int capacity=5;
  int[]intArray=new int[capacity];
  //进行调用
  for(int i=0;i<intArray.Length;i++)
  {
  intArray.SetValue(i,i);
  }
  //验证结果
  Assert.AreEqual(capacity,intArray.Length);
  }