收藏 分销(赏)

异常处置和单元测试省公共课一等奖全国赛课获奖课件.pptx

上传人:快乐****生活 文档编号:4141494 上传时间:2024-08-01 格式:PPTX 页数:29 大小:1.25MB
下载 相关 举报
异常处置和单元测试省公共课一等奖全国赛课获奖课件.pptx_第1页
第1页 / 共29页
异常处置和单元测试省公共课一等奖全国赛课获奖课件.pptx_第2页
第2页 / 共29页
异常处置和单元测试省公共课一等奖全国赛课获奖课件.pptx_第3页
第3页 / 共29页
异常处置和单元测试省公共课一等奖全国赛课获奖课件.pptx_第4页
第4页 / 共29页
异常处置和单元测试省公共课一等奖全国赛课获奖课件.pptx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、异常异常异常异常处处理与理与理与理与单单元元元元测试测试第四章第四章第四章第四章第1页回顾回顾实体类在三层结构中主要作用是什么?实体类在三层结构中主要作用是什么?using语句主要作用是什么?语句主要作用是什么?第2页预习检验预习检验1、在、在.NET平台下引发异常原因有哪些?平台下引发异常原因有哪些?2、.NET Framework引发异常有几类?引发异常有几类?3、单元测试中代码覆盖率主要作用是什么?、单元测试中代码覆盖率主要作用是什么?第3页本章任务本章任务在业务逻辑层定制异常处理在业务逻辑层定制异常处理在业务逻辑层创建单元测试在业务逻辑层创建单元测试第4页本章目标本章目标会使用异常处理

2、会使用异常处理会使用会使用VSTS写单元测试写单元测试第5页trade()sendquery();.为何需要异常处理为何需要异常处理帐户姓名 余额300123张张三三300124王五王五47,000311320李四李四网上银行网上银行 张三转账张三转账25000到李四账户上到李四账户上020,000数据库数据库系统将查询发送到数据库中系统将查询发送到数据库中拒绝交易拒绝交易 余额余额 0-25000错误错误 程序出现故障程序出现故障 系统瓦解系统瓦解为了预防系统瓦解我们需要使用异常处理为了预防系统瓦解我们需要使用异常处理第6页什么异常处理什么异常处理代码错误代码错误 公共语言运公共语言运 行库

3、碰到意外行库碰到意外 资源资源 不可用不可用 异常异常 程序程序 执执行行异常处理异常处理 恢复恢复程序程序 在在.NET平台下我们怎样使用异常处理?首先要了解平台下我们怎样使用异常处理?首先要了解Exception类类 第7页Exception类类.NET Framework 公共语言运行公共语言运行时引发异常时引发异常用户程序用户程序引发异常引发异常Exception类都有哪些属性使我们深入了解它类都有哪些属性使我们深入了解它?第8页Exception类类属性名称属性名称说明说明Source 此属性表示造成异常发生应用程此属性表示造成异常发生应用程序或对象名称序或对象名称 Message提

4、供引发异常详细信息提供引发异常详细信息StackTrace 此属性提供在堆栈上所调用方法此属性提供在堆栈上所调用方法详细信息,并首先显示最近调用详细信息,并首先显示最近调用方法方法 InnerException对内部异常引用,假如此异常基对内部异常引用,假如此异常基于前一个异常,则内部异常指最于前一个异常,则内部异常指最初发生异常初发生异常用用Exception类怎样捕捉异常类怎样捕捉异常第9页怎样捕捉异常怎样捕捉异常回顾回顾try和和catch块使用块使用滤水器滤水器 filter_water()try 水水;catch 杂质杂质;.过滤水过滤水 杂质杂质/程序代码程序代码/错误处理代码错误

5、处理代码 try/程序代码程序代码catch(Exception E)/错误处理代码错误处理代码第10页使用异常处理使用异常处理:在:在C#程序中,怎样使用异常处理程序中,怎样使用异常处理 使用使用throw 再次引发异常再次引发异常2使用使用Try.Catch块捕捉异常块捕捉异常1怎样使用怎样使用throw得到更多异常信息?得到更多异常信息?第11页使用异常处理使用异常处理public IList GetAllStudents()IList students=new List();try /调用数据访问层调用数据访问层 students=studentService.GetAllStuden

6、ts();catch(Exception ex)throw new Exception(ex.ToString();return students;第12页小结小结使用异常处理主要目标是什么?使用异常处理主要目标是什么?.NET Framework引发异常有哪两类?引发异常有哪两类?怎样捕捉异常?怎样捕捉异常?第13页为何需要单元测试为何需要单元测试单元测试是确保软件质量详细操作方法单元测试是确保软件质量详细操作方法第14页什么是单元测试什么是单元测试PDA在出厂之前,会对每一个零部件进行测试在出厂之前,会对每一个零部件进行测试单元测试单元测试 第15页什么是什么是VSTS单元测试单元测试Vi

7、sual Studion 集成单元测试框架集成单元测试框架第16页怎样用怎样用VSTS写单元测试写单元测试1 1、创建测试、创建测试2 2、编写测试、编写测试3 3、运行测试、运行测试4 4、代码覆盖、代码覆盖第17页创建测试创建测试:在业务逻辑层为学员账户创建方法创建单元测试:在业务逻辑层为学员账户创建方法创建单元测试1、右键单击、右键单击“AddStudent”方法,然后选择方法,然后选择“创建单元测试创建单元测试”第18页创建测试创建测试2、在、在“创建单元测试创建单元测试”对话框中选择对话框中选择“输出项目输出项目”为为“Visual C#”选择输出项目类型选择输出项目类型“Visua

8、l C#”测试项目名称测试项目名称3、单击、单击“确定确定”,输入测试项目名称为,输入测试项目名称为“MySchoolTest”,单击,单击“创建创建”第19页创建测试创建测试新生成与单元测试相关文件有:新生成与单元测试相关文件有:文件名文件名目标目标AuthoringTest.txt提供关于创建测试说明,包含向提供关于创建测试说明,包含向项目增加其它测试说明项目增加其它测试说明StudentManagerTest.cs包含包含StudentManager类生成测类生成测试,以及测试初始化和测试去除试,以及测试初始化和测试去除方法方法MySchoolPro.vsmdi测试管理文件测试管理文件l

9、ocaltestrun.testrunconfig当地测试运行设置文件当地测试运行设置文件怎样在怎样在VSTS生成测试框架基础上编写测试?生成测试框架基础上编写测试?第20页 TestMethod()public void AddStudentTest()global:MySchool.BLL.StudentManager target=new global:MySchool.BLL.StudentManager();/TODO:初始化为适当值初始化为适当值 global:MySchool.Models.Student student=null;string expected=null;str

10、ing actual;actual=target.AddStudent(student);Assert.AreEqual(expected,actual,MySchool.BLL.StudentManager.AddStudent 未返回所需值。未返回所需值。);Assert.Inconclusive(验证此测试方法正确性。验证此测试方法正确性。);编写测试编写测试VSTS生成基本测试框架生成基本测试框架VSTS单元测试是基于断言(单元测试是基于断言(Assert)测试)测试 测试指定值是否相等,测试指定值是否相等,假如不等测试失败假如不等测试失败表明这是个未表明这是个未验证单元测试验证单元测

11、试第21页编写测试编写测试断言断言说明说明AreEqual()测试指定值是否相等,假如不等测试失败测试指定值是否相等,假如不等测试失败Inconclusive()表示一个未验证测试表示一个未验证测试 IsTrue()测试指定条件是否为测试指定条件是否为true,假如为假如为false测试失测试失败败 IsNull()测试指定对象是否为空引用,假如不为空,测测试指定对象是否为空引用,假如不为空,测试失败试失败IsNotNull()测试指定对象是否为非空,假如为空,测试失测试指定对象是否为非空,假如为空,测试失败败IsFalse()测试指定条件是否为测试指定条件是否为false,假如该条件为假如该

12、条件为true,测试失败测试失败惯用断言以下:惯用断言以下:怎样修改断言(怎样修改断言(Assert)?得到正式测试)?得到正式测试第22页 TestMethod()public void AddStudentTest()/TODO:初始化为适当值初始化为适当值 global:MySchool.Models.Student student=new global:MySchool.Models.Student();student.LoginId=test3;student.LingPwd=test3;student.UserStateId=1;student.StudentName=test3;

13、student.StudentNO=test3;student.Sex=男男;student.ClassID=1;string expected=“学员学员账户创建成功账户创建成功!string actual;actual=MySchool.BLL.StudentManager.AddStudent(student);Assert.AreEqual(expected,actual,MySchool.BLL.StudentManager.AddStudent 未返回所需值。未返回所需值。);编写测试编写测试在测试项目中添加在测试项目中添加被测单元需要配置文件被测单元需要配置文件第23页运行测试运

14、行测试 测试运行方式有两种测试运行方式有两种 测试运行结果有两种测试运行结果有两种怎样查看测试失败详细信息怎样查看测试失败详细信息1用调试开启选定测试项目用调试开启选定测试项目2开启选定测试项目(不调试)开启选定测试项目(不调试)1经过经过2失败失败第24页运行测试运行测试我们选定测试并双击我们选定测试并双击显示显示AddStudentTestResults窗口窗口单元测试一个关键指标是:单元测试一个关键指标是:代码覆盖代码覆盖第25页代码覆盖代码覆盖代码覆盖是度量单元测代码覆盖是度量单元测试运行时测试了多少代码试运行时测试了多少代码未测试未测试到代码到代码怎样启用代码覆盖功效?怎样启用代码覆

15、盖功效?第26页代码覆盖代码覆盖1、双击、双击“当地测试运行设置文件(当地测试运行设置文件(localtestrun.testrunconfig)”2、在配置对话框中选择、在配置对话框中选择“代码覆盖率代码覆盖率”,选中,选中“要检测项目要检测项目”,单击应用,单击应用 怎样查看代码覆盖率?怎样查看代码覆盖率?第27页代码覆盖代码覆盖3、点击、点击“代码覆盖率结果代码覆盖率结果”双击被测单元双击被测单元第28页总结总结在异常处理中在异常处理中throw主要作用是什么?主要作用是什么?怎样取得更多异常信息?怎样取得更多异常信息?为何要使用单元测试?为何要使用单元测试?VSTS下生成测试项目是否支持调试功效?下生成测试项目是否支持调试功效?第29页

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服