单元测试简介
来源:互联网 发布:淘宝开店在哪找货源 编辑:程序博客网 时间:2024/05/06 19:54
一、单元测试的概述
1.单元测试是开发编写的一小段代码,用于检测被测代码的一个很小的,很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。执行单元测试是了为证明某段代码的行为确实和开发者所期望的一致。
2.单元测试的目的是让你对你写的代码更有信心,让你的工作更有效率.
3.通过写单元测试代码,可以测试函数的结果是否达到预期的目标,而且任何时候都可以运行单元测试代码,看修改或者增加了新的功能时候是否引进了新的错误.通过查看单元测试代码可以找到如何使用你写代码的例子.
二、单元测试的Quick Start和NUnit的使用入门
三、编写和运行NUnit测试
1.NUnit的各种断言
AreEquals:判断两个元数据是否相等.
AreSame:判断两个引用数据是否相等.
IsTrue,IsFalse:判断布尔表达式是否是真或假.
IsNull,IsNotNull:判断引用类型是否是null或not null.
Fail:断言以失败返回
2.断言实行立即退出制:即按顺序执行测试代码,只有有某一个断言失败,则立刻退出测试程序,显示错误.
3.NUnit的编码
引用Nunit.Framework命名空间
对类应用TestFixture Attribute,类必须是public ,并且有一个public void的无参的默认构造函数
对方法(函数)应用Test Attribute,
4.测试分组
通过对类或方法应用Category Attribute,就可以把类和方法分成不同的测试组,运行测试了可以有选择的运行某组或某几组测试.
5.类前置和后置方法,方法的前置和后置方法
类前置和后置方法是指在类中的其中方法执行前和执行后必须运行的方法,分别是oneTimeSetup()和OneTimeTeardown(). 类似于构造和析构函数.
方法的前置和后置方法,是指在每个测试方法运行前后都必须运行的方法,分别是MySetup()和MyTeardown().
6.异常断言
在方法中应用ExpectedException Attibute和进行断言,以期望某个方法抛出某个异常.
四、要测试哪些内容
归结为:Right-BICEP
Right:是为重要,函数是否能得到期望的正确的结果。
B(Border):满足边界条件。
I(Indirect):反向运算结果是否正确。
C(Cross):交叉检查结果是否正确.(换种算法来检查结果是否一致)
E(Error):强制错误条件出现时结果是否正确.(网络断,文件不存在等条件)
P(Performance):是否满足性能要求
五、CORRECT 边界条件
代码中许多的bugs都出现在“边界条件”附近,也就是说,在那些条件下,代码的行为可能不同于平常的、每天都能运行到的程序路径。
用首字母缩略词“CORRECT”来助记:
一致性(Conformance):值是否符合预期格式(正常的数据),列出所有可能不一致的数据,进行验证。
有序性(Ordering):传入的参数的顺序不同的结果是否下确,对排序算法会产生影响。或者是对类的属性赋值顺序不同会不会产生错误。
区间性(Range):参数的取值范围是否在某个合理的区间范围内。
引用/耦合性(Rerference):程序依赖外部的一些条件是否已满足。前条件:系统必须处于什么状态下,该方法才能运行。后条件:你的方法将会保证哪些状态发生改变。
存在性(Existence):参数是否真的存在,引用为null,string为空,数值为0或者物理介质不存在时,程序是否能正常运行。
基数性(Cardinality):考虑以"0-1-N原则",当数值分别为0,1,N时,可能出现的结果,其中N为最大值。
时间性(Time):相对时间:函数执行的依赖顺序;绝对时间:超时问题;并发问题。
- 单元测试简介
- 单元测试简介
- NUnit单元测试工具简介
- java-单元测试简介
- android 单元测试用法 简介
- 单元测试工具 CUnit 简介
- 单元测试工具 CUnit 简介
- PHPUnit 单元测试简介
- 软件测试 - 单元测试简介
- java单元测试---junit简介
- JUnit单元测试--JUnit简介
- android单元测试一(单元测试简介)
- JUnit和单元测试入门简介
- JUnit和单元测试入门简介
- JUnit和单元测试入门简介
- JUnit和单元测试入门简介
- JUnit和单元测试入门简介
- C++单元测试库QuickTest简介
- Java/Android中的PBKDF2加密认证
- OpenCV学习笔记(1)—计算程序运行时间
- MYSQL order by排序与索引关系总结
- LTE MIB&SIB1
- CSDN博客积分标准,包括博客勋章等
- 单元测试简介
- android 使对话框同步显示
- 线程池(一)
- 测试报告编写指南
- MySQL绿色版安装教程
- 明清徽州宗族的异姓承继
- 关于海量数据查找排序问题
- 时间复杂度和空间复杂度
- 测试用例之性能测试用例