单元测试中的常用测试模式想获取更多测试资料,请访问织雀教育官网。单元测试跟软件设计一样,有一些常用的模式,这篇文章是介绍一些常用的模式,其中的示例是C#代码,都比较简单,我想大家都能看懂。下面进入正题: 1、准备,执行,断言(Arrange,Act,Assert)。这种模式是非常常见的,套用这种模式进行单元测试通常的做法如下: 1)准备测试环境,测试数据等 2)执行被测试方法 3)用断言来验证执行结果下面是一段测试代码,被测方法的功能是把字符串中每个单词的首字母转为大写,特殊字符用下划线替代。[TestMethod()]publicvoidCapitalizeTest(){//准备数据stringinput="helloworld!";stringexpected="HelloWorld_";//执行测试stringactual;actual=(input);//(expected,actual);} 2、构造函数测试。这种模式适合对类中某些特殊的属性进行测试,被测的属性都有一个特点–它们都是不变量;例如数组的初始化以后,其容量是不会变化的,无论这个数组对象被什么样的外部方法调用。一般的做法如下: 1)创建一个实例 2)对该实例进行外部调用 3)用断言来验证执行结果下面是一段代码;首先创建一个数组,然后使用该数组,最后验证该数组的大小有没有变化。[TestMethod]publicvoidTestInvariant(){//创建一个实例intcapacity=5;int[]intArray=newint[capacity];//进行调用for(inti=0;i<;i++){(i,i);}//(capacity,);} 3、反向关联(Roundtrip)。这种模式适合于被测方法有一个可逆方法的情况下使用。它的数学证明是:f-1(f(x))=x 下面是一段示例代码:[TestMethod]publicvoidRoundTripTest(){stringstr="10";//把字符串转换为整数,然后再转换为字符串inti=(str);stringfinalString=();//(str,finalString);4、经过处理的反向关联(SanitizedRoundtrip)。上面说的反向关联有一个缺点,就是如果输入的字符串为”10″,那么就有点问题了,因为整数10转换为字符串是不会转换为”10″的,这个模式的数学证明是:f-1(f(f-1(x)))=f-1(x) 以下示例可以看做是上一段代码的加强版。[TestMethod]publicvoidSanitizedRoundTripTest(){stringstr="10";//先把字符串转换为整数,然后把整数转换为字符串,最后把字符串转换为整数inti=(str);stringintermediate=();introundtripped=(inte
织雀教育单元测试中的常用测试模式 来自淘豆网www.taodocs.com转载请标明出处.