.NET中的单元测试

来源:互联网 发布:团圆之后知乎 编辑:程序博客网 时间:2024/06/11 04:07

1.单元测试任务包括

(1)、输入的实际参数与形式参数的个数是否相同;
(2)、输入的实际参数与形式参数的属性是否匹配;
(3)、输入的实际参数与形式参数的量纲是否一致;
(4)、调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;
(5)、调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;
(6)、调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;
(7)、 调用预定义函数时所用参数的个数、属性和次序是否正确;
(8)、是否存在与当前入口点无关的参数引用;
(9)、是否修改了只读型参数;
(10)、对全程变量的定义各模块是否一致;
(11)、是否把某些约束作为参数传递。
(12)、文件使用前是否已经打开;
(13)、是否处理了文件尾;
(14)、是否处理了输入/输出错误;
(15)、输出信息中是否有文字性错误;

2.模块局部数据结构测试

检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。局部数据结构往往是错误的根源,应仔细设计测试用例
应该考虑下列因素
(1)、不合适或不相容的类型说明;
(2)、变量无初值;
(3)、变量初始化或省缺值有错;
(4)、不正确的变量名(拼错或不正确地截断);
(5)、出现上溢、下溢和地址异常。\

3、模块中所有独立执行测试

应该考虑下列因素
(1)、误解或用错了算符优先级;
(2)、混合类型运算;
(3)、变量初值错;
(4)、精度不够;
(5)、表达式符号错。
(6)、不同数据类型的对象之间进行比较;
(7)、错误地使用逻辑运算符或优先级;
(8)、因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;
(9)、比较运算或变量出错;
(10)、循环终止条件或不可能出现;

4、模块的各条错误处理测试

应该考虑下列因素
(1)、输出的出错信息难以理解;
(2)、记录的错误与实际遇到的错误不相符;
(3)、在程序自定义的出错处理段运行之前,系统已介入;
(4)、异常处理不当;
(5)、错误陈述中未能提供足够的定位出错信息。

测试代码

异常测试,这里需要的特性“ExpectedException”,意思是期待抛出一个异常,这里不需要再进行断言了,抛出异常后,后面的代码也就不会执行了。

[TestMethod][ExpectedException(typeof(ArgumentException))]public void TestExpectedException(){    //调用需要测试的方法}

测试返回值

断言该方法的返回值是否是,期待的的大小,如果是则测试成功,否则就失败了。

[TestMethod]public void TestExpectedException(){    TestDemo tstDemo = new TestDemo();    int[] number = new[] { 12, 23, 44, 66 };    int resultNumber = tstDemo.GetMax(number);    Assert.AreEqual(resultNumber,66);}

常用的断言

Assert.AreNotSame(file1, tempTrue);//两个引入的对象是同一个,测试失败"Assert.AreSame(file1, file);//两个引入的对象是不相同的Assert.Fail();//不管是什么,直接宣布测试失败Assert.Inconclusive();//同Fail差不多,但不是失败,只是测试不能通过Assert.IsFalse(true);//如果是真,表示测试失败Assert.IsTrue(false);//如果为假,请示测试失败Assert.IsInstanceOfType(true, tempTrue.GetType());//类型不相同,测试失败Assert.IsNull(tempFalse);   //不是空所以测试失败    
0 0
原创粉丝点击