1、单元测试南华大学计算机学院软件工程系蒋良卫教学安排 浮点数精度损失 单元测试主题 浮点数处理 数据类型,double 不能直接与0比较,逻辑结果可能恒真或恒假精度使用Double等浮点数据类型时,应考虑精度损失问题,尤其是除零,因为浮点类型的零是一个极小数double.Epsilonpublic double calculate(double x,double y)double result=0;if(Math.Abs(y)-double.Epsilon1e-6)throw new DivideByZeroException(除数为0了);else result=x/y;return resu
2、lt;方法 由一条或多条语句构成,共同完成一个特定功能,称为方法(method)C#,所有方法都必须放在类(class)中 有返回值的方法,如:public int add(int i,int j)return i+j;没有返回值的方法,如:public void add(int i,int j)重载重载条件方法名称相同;只与输入参数有关,参数数量、参数的数据类型不同;与返回值无关单元测试单元测试四大部件实现思路单元测试框架MsTest测试步骤AAA Arrange,act,assert四大部件 被测对象,比如Div 单元测试代码,创建单元测试项目 期望值 断言,Assert类实现思路编写单元
3、测试代码设定期望值执行被测对象,获取运行结果通过断言验证测试步骤AAA Arrange-Act-Assert的缩写 Arrange,预置环境,初始化变量 Act,调用方法,获得结果 Assert,断言检测实际值与期望值是否一致工具-单元测试框架MsTest 微软出品,集成在Visual Studio中 面向切面编程AOP思想,技术实现为特性Attribute,注意与Property区分 单元测试中用到的特性 TestClass TestMethod ExpectedException 测试方法没有输入与返回实现 添加引用,被测对象 物理文件,程序集,被测对象所在项目 逻辑部件,using,被测
4、对象的路径 测试用例的设计 白盒测试,基于源代码 测试充分性准则方法命名 组成 被测对象(类或方法等),输入条件,期望结果 下划线连接 示例 除法,输入7.26、2.2,返回3.3 Divide_SevenPointTwoSixAndTwoPointTwo_ReturnThreePointThree用例设计 测试充分性准则 路径覆盖(路径全覆盖)被测对象除法 两条执行路径 判断条件,正误差与负误差 用例设计结果 三条测试用例 正常场景 Divide_SevenPointTwoSixAndTwoPointTwo_ReturnThreePointThree 异常场景 Divide_EpsilonAddPositiveDeviation_ExpectArgumentOutOfRangeException Divide_EpsilonAddNegativeDeviation_ExpectArgumentOutOfRangeException覆盖率