版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单元测试中科大软件(run jin)学院共三十二页单元测试在软件开发过程中,可能会有很多的模块,而每个模块有可能又由许多函数组成。当系统发生错误时,我们必须定位发生错误的模块,然后精确到模块中某个具体的函数中,而这工作往往又是非常浪费时间和生产效率的,如果系统越复杂,那么定位错误的成本将越高。所以(suy)在每个函数集成进模块时,必须通过严格的单元测试来验证。 单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。共三十二页单元测试单元测试是在软件开发过程中要进行的最低级别的测试活动
2、,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。 在一种传统的结构化编程语言中,比如C,要进行测试的单元一般是函数或子过程。在象C+这样的面向对象的语言中,要进行测试的基本(jbn)单元是类。VS系列将单元测试工具集成在IDE中,方便使用。 在VS2010中可以为函数自动生成单元测试,无论它是否是public或者的private的。所有用于单元测试的类和函数都被定义在Microsoft.VisualStudio.TestTools.UnitTesting这个命名空间中。共三十二页单元测试共三十二页using System;namespace Test public
3、 class Program public Program() public int Add(int a, int b) return a + b; public int Dec(int a, int b) return a - b; public int Mul(int a, int b) return a * b; public int Div(int a, int b) return a / b; public static void Main() 共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页 TestMethod() public
4、 void AddTest() program target = new program(); / TODO: 初始化为适当(shdng)的值 int a = 0; / TODO: 初始化为适当的值 int b = 0; / TODO: 初始化为适当的值 int expected = 0; / TODO: 初始化为适当的值 int actual; actual = target.Add(a, b); Assert.AreEqual(expected, actual); Assert.Inconclusive(验证此测试方法的正确性。); 共三十二页单元测试TestMethod():说明(shu
5、mng)了以下代码是一个测试用例Int a = o; / TODO: 初始化为适当的值int b = 0; / TODO: 初始化为适当的值这两句是被测函数的输入参数,需要我们去修改它的值,也就是我们输入测试用例的地方。double expected = 0; / TODO: 初始化为适当的值double actual; 这两句话浅显易懂,前一句话是定义了期望值和对它进行初始化,后一句话是定义了实际值。默认Assert.AreEqual(expected, actual);Assert在这里可以理解成断言:在VSTS里做单元测试是基于断言的测试。默认代码中Assert.Inconclusive
6、 表明这是一个未经验证的单元测试。在实际的程序中可以注释掉。共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试共三十二页单元测试单元测试的基本方法是调用被测代码的函数,输入函数的参数值,获取返回结果,然后与预期测试结果进行比较,如果相等则认为测试通过,否则(fuz)认为测试不通过。Assert语句用来比较从方法返回来的值和期望值,然后返回pass或者fail的结果。如果在一个测试方法中有多个Assert的话,那么这个测试方法要通过测试必须让所有的Assert方法通过,不然,其中有一个fail,那么这个
7、Case就会fail。如果我们的单元测试中没有任何的Assert语句,那么它的结果始终是pass的。共三十二页单元测试Assert类的使用Assert.Inconclusive() 表示一个未验证的测试;Assert.AreEqual() 测试指定的值是否相等,如果相等,则测试通过;AreSame()用于验证指定的两个对象变量是指向(zh xin)相同的对象,否则认为是错误AreNotSame()用于验证指定的两个对象变量是指向不同的对象,否则认为是错误Assert.IsTrue() 测试指定的条件是否为True,如果为True,则测试通过;Assert.IsFalse() 测试指定的条件是否
8、为False,如果为False,则测试通过;Assert.IsNull() 测试指定的对象是否为空引用,如果为空,则测试通过;Assert.IsNotNull() 测试指定的对象是否为非空,如果不为空,则测试通过;共三十二页查看(chkn)代码覆盖率共三十二页查看(chkn)代码覆盖率共三十二页查看(chkn)代码覆盖率共三十二页查看(chkn)代码覆盖率共三十二页查看(chkn)代码覆盖率共三十二页查看(chkn)代码覆盖率共三十二页查看(chkn)代码覆盖率共三十二页实验(shyn)内容演练:在VS2010中创建并运行单元测试/shizhu/zlbz/sy2.htm参考:/zh-cn/li
9、brary/ms182532.aspx准备一个要在演练中使用的“Bank”项目。创建单元测试运行和自定义单元测试运行单元测试并修复(xif)代码为私有方法创建和运行单元测试运行测试并查看代码覆盖率提交实验报告共三十二页 public void FreezeAccountTest() BankAccount_Accessor target = new BankAccount_Accessor(“Mr.Bryan Walton”, 11.99); / TODO: Initialize to an appropriate value target.FreezeAccount(); bool cred
10、itAccount = false;/ False means account could be credited: Fail test. / Try to credit account try target.Credit(1.00); catch (System.Exception) / Threw exception. FreezeAccount worked correctly: Pass test. creditAccount = true; / Assert fails if creditAccount condition is false. Fail test. Assert.IsTrue(creditAccount, Was able to credit account.);共三十二页内容摘要单元测试。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。在VS2010中可以为函数自动生成单元测试,无论它是否是public或者的private的。所有用于单元测试的类和函数都被定义在Microsoft.VisualStudio.TestTools.UnitTesting这个命名空间中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度木材运输碳排放交易合作合同4篇
- 2025年度个人艺术品投资收藏合同4篇
- 吉林省长春市净月实验中学2024-2025学年九年级上学期期末化学试题(含答案)
- 园区物业服务质量提升考核试卷
- 2025版微信公众号内容版权授权与运营维护服务合同3篇
- 原材料卸车作业中安全生产奖励制度合同3篇
- 2025年代理经销销售合同
- 2025年农产品合同模板
- 2025年合资合约示范
- 二零二五年度贵州事业单位合同制工人聘用协议3篇
- 2025水利云播五大员考试题库(含答案)
- 中药饮片验收培训
- 手术室专科护士工作总结汇报
- DB34T 1831-2013 油菜收获与秸秆粉碎机械化联合作业技术规范
- 创伤处理理论知识考核试题及答案
- 2019级水电站动力设备专业三年制人才培养方案
- 肝素诱导的血小板减少症培训课件
- 抖音认证承诺函
- 高等数学(第二版)
- 四合一体系基础知识培训课件
- ICD-9-CM-3手术与操作国家临床版亚目表
评论
0/150
提交评论