1、什么是单元测试
 
 
 
 
2、单元测试的好处
(1)协助程序员尽快找到代码中bug的具体位置
(2)能够让程序员对自己的程序更有自信
(3)能够让程序员在提交项目之前就将代码变的更加的强壮
(4)能够协助程序员更好的进行开发
(5)能够向其他的程序员展示你写的程序该如何调用
(6)能够让项目主管更了解系统当前的情况
3、单元测试工具
 
 
4、如何编写单元测试
4.1 Assert类
 
Assert中文意思是断言。
 
 
 
4.2 TestClass特性
 
4.3 TestMethod特性
 
 
4.4 怎么评判一个单元测试是否合理或者达到测试目的?
答案是 代码覆盖率。
代码覆盖率是单元测试写的是否合理或是否达到要求的唯一标准。
代码覆盖率是测试代码所运行的实际程序路径的覆盖率。
 
怎么知道代码覆盖率是多少呢?
VS中提供了查看代码覆盖率的工具。
 
在单元测试项目中,打开测试资源管理器。
 
 
双击下面的方法,
 
 
深棕色的表示为 没有被测试到的代码。
浅蓝色的表示为 被测试到的代码。
浅橘色的表示为 部分被测试到的代码。
 
 
5、单元测试的标准
5.1 对已经存在的项目添加单元测试
步骤一:对所有程序集中的公共类以及公共类里面的公开方法添加单元测试
步骤二:对于构造函数和公共属性进行单元测试
步骤三:添加全面单元测试
5.2 对新项目添加单元测试
刚刚开始的项目,已开始就应该对所有公共的方法和属性都添加单元测试。
 
5.3 给哪些代码添加单元测试
首先是 要对属于框架技术中的代码添加单元测试。如操作数据库的组件、操作外部WebService的组件、邮件收发组件等。这些可复用的代码单元测试,可以大大提高底层操作的正确性和健壮性。
其次为业务逻辑层对界面公开的方法添加单元测试。这样可以让业务逻辑保持正确,并且能够将大部分的业务操作都归纳到单元测试中。保证以后如果业务逻辑出现问题,可以通过单元测试的业务逻辑找到bug。
5.4 编写单元测试代码需要注意什么
 
 
5.5 怎么提高代码覆盖率
1、边界条件数据,比如最大值最小值
2、空数据,引用类型判断null
3、格式不正确的数据,对象内部的数据结构是否正确。
 

C# 单元测试学习笔记的更多相关文章

  1. Junit单元测试学习笔记三

    一.     高级 Fixture 上一篇文章中我们介绍了两个 Fixture 标注,分别是 @Before 和 @After ,我们来看看他们是否适合完成如下功能:有一个类是负责对大文件(超过 50 ...

  2. Junit单元测试学习笔记一

    我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的.但是,我们同时应该确保每一个函数 ...

  3. OC 单元测试学习笔记

    UnitTest 编译异常汇总: 问题1 Check dependencies No architectures to compile for (ONLY_ACTIVE_ARCH=YES, activ ...

  4. Junit单元测试学习笔记二

    我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地应用JUnit4. 一.     包含必要地Package ...

  5. SpringBoot学习笔记:单元测试

    SpringBoot学习笔记:单元测试 单元测试 单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小可测试部 ...

  6. swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  7. RAC学习笔记

    RAC学习笔记 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 在学习Re ...

  8. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  9. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. linux 排查cpu负载过高异常

    步骤一.找到最耗CPU的进程 工具:top 方法: 执行top -c ,显示进程运行信息列表 键入P (大写p),进程按照CPU使用率排序 图示: 如上图,最耗CPU的进程PID为10765 步骤二: ...

  2. Gradle系列教程之依赖管理

    这一章我将介绍Gradle对依赖管理的强大支持,学习依赖分组和定位不同类型仓库.依赖管理看起来很容易,但是当出现依赖解析冲突时就会很棘手,复杂的依赖关系可能导致构建中依赖一个库的多个版本.Gradle ...

  3. <每日 1 OJ> -Table

    上图是一个Mysql查询结果图,我们看到这个表格非常漂亮,只需要使用”+”和”-”两个符号就可以打印,现在你的任务是打印一个n×m的表格我们定义单位长度(水平方向有三个”-”,竖直方向有一个”| ”, ...

  4. 深入kubernetes调度之NodeSelector

    Kubernetes的调度有简单,有复杂,指定NodeName和使用NodeSelector调度是最简单的,可以将Pod调度到期望的节点上. 1 NodeNamePod.spec.nodeName用于 ...

  5. 冰多多团队-第一次Scrum例会

    冰多多团队-第一次Scrum会议 注:由于对课程要求的不熟悉,所以本文档为周会后的补充总结文档 会议基本情况 会议时间:3.28 19:00 - 19:30 会议地点:新主楼F座2楼沙发休息处 工作情 ...

  6. bind named.conf 的理解

    [root@46 /]#yum -y install bind bind-chroot bind-libs bind-utils caching-nameserver目录说明/var/named/ch ...

  7. GitLab的权限管理及Merge Request

    GitLab的权限管理及Merge Request 原创尘世间一名迷途小码农 发布于2019-06-09 12:40:30 阅读数 2909  收藏 展开 目录 1.前言 2.角色权限 3.强制代码审 ...

  8. Mac下 VirtualBox(VBox) 的 Centos6/7 共享文件夹配置

    vbox 安装虚拟机请移步这里. https://blog.csdn.net/a47846800/article/details/88847466 前期准备: 远程登录 centos 系统, 分边执行 ...

  9. HTML+CSS编写五环居中案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 查看ssh有没有被黑的IP

    #grep "Failed password " /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr ...