测试驱动开发学习<三> 单元测试
2013-05-31 10:24
330 查看
需要学习的内容:
● 什么是单元测试
● 单元测试与其他类型的测试有何区别
● 单元测试框架如何有助于快速轻松地编写单元测试
● 在实践TDD 时,在测试中模拟外部资源为何非常重要
● 简要概述NUnit 单元测试框架和Moq 模拟框架,这是.NET 世界中两个非常流行的TDD工具利用替
代对象或模拟对象,使测试能够仅专注于被测代码。
单元测试就是针对一个工作单元设计的测试,
这种测试的好处是:它仅局限于一个特定的工作单元。特点:
1.与其他代码隔离
2.与其他开发人员隔离
3.有针对性
4.可重复
5.可预测
其他类型的测试:
1.用户界面测试验证
2.集成测试
3.压力测试
4.用户验收测试
单元测试框架提供了一种统一的编程模型,可以将测试定义为一些简单的类,这些类中的方法可以调用希望测试的应用程序代码。
NUnit 可能是用于.NET 的最流行单元测试框架,NUnit 是以JUnit 为基础的,JUnit 是一种基于Java 的单元测试工具。
编写的大多数单元测试都有非常简单的模式:
● 执行一些操作,以建立测试。
● 执行测试。
● 验证结果。
● 必要时,重设环境。
测试本身就是一些方法,可以执行和调用要测试的语法。这些方法必须驻存于类中,该类被称为“测试容器”
Setup 特性
如果可以为测试提供设置代码,那就必须另行提供一些代码,在完成测试之后将测试所使用的资源复位。
TearDown特性
该示例重现了一种情景,在这种情景中可能希望或需要在完成测试后对资源进行复位
断言(assert)
● 什么是单元测试
● 单元测试与其他类型的测试有何区别
● 单元测试框架如何有助于快速轻松地编写单元测试
● 在实践TDD 时,在测试中模拟外部资源为何非常重要
● 简要概述NUnit 单元测试框架和Moq 模拟框架,这是.NET 世界中两个非常流行的TDD工具利用替
代对象或模拟对象,使测试能够仅专注于被测代码。
单元测试就是针对一个工作单元设计的测试,
这种测试的好处是:它仅局限于一个特定的工作单元。特点:
1.与其他代码隔离
2.与其他开发人员隔离
3.有针对性
4.可重复
5.可预测
其他类型的测试:
1.用户界面测试验证
2.集成测试
3.压力测试
4.用户验收测试
单元测试框架提供了一种统一的编程模型,可以将测试定义为一些简单的类,这些类中的方法可以调用希望测试的应用程序代码。
NUnit 可能是用于.NET 的最流行单元测试框架,NUnit 是以JUnit 为基础的,JUnit 是一种基于Java 的单元测试工具。
编写的大多数单元测试都有非常简单的模式:
● 执行一些操作,以建立测试。
● 执行测试。
● 验证结果。
● 必要时,重设环境。
测试本身就是一些方法,可以执行和调用要测试的语法。这些方法必须驻存于类中,该类被称为“测试容器”
Setup 特性
[TestFixture] public class ExampleTests { private string _testMessage; [SetUp] public void SetupForTest() //SetupForTest 方法中对变量_testMessage 进行初始化。
{ _testMessage = "This is a test."; } [Test] public void TestMethod() { Debug.WriteLine(_testMessage); } }
如果可以为测试提供设置代码,那就必须另行提供一些代码,在完成测试之后将测试所使用的资源复位。
TearDown特性
private string _testMessage; [SetUp] public void SetupForTest() { _testMessage = "This is a test."; } [Test] public void TestMethod() { Debug.WriteLine(_testMessage); } [TearDown] public void TearDownAfterTest() { _testMessage = string.Empty; }
该示例重现了一种情景,在这种情景中可能希望或需要在完成测试后对资源进行复位
断言(assert)
[Test] public void MessageLengthGreaterThanZero() { if (_testMessage.Length > 0) { Assert.Pass(); } else { Assert.Fail(); } }
相关文章推荐
- <Test-Driven Development with Python>学习笔记 第一部分 测试驱动开发基础
- 测试驱动开发学习<二>
- 测试驱动开发学习<一>
- VS2010 学习笔记 WF4 (5) 加入单元测试,实现测试驱动开发(TDD)
- Android学习之多线程开发总结<三>
- <<测试驱动开发的艺术>>读书笔记
- 测试驱动开发(Test-Driven Development,简称TDD)--单元测试-->提高代码质量
- 学习HTML5开发RPG游戏第三步>基本对象设计<三>
- 测试驱动javascript开发 -- 2.单元测试一例:学习断言、测试用例函数的编写
- RT-Thread 学习笔记(十三)--- 开启基于RTGUI的LCD显示功能(3)<触屏屏驱动移植和测试>
- Linux之设备驱动学习简过程<三>(不断添加中)
- mini2440 led驱动代码(原创)基于iomap<测试初始化没有问题,其它功能待开发>
- <JAVA学习笔记三>——集合
- 自动化设计-自动化测试环境搭建<三>
- Morphia和MongoDB学习总结<三>
- PostgreSQL学习手册(函数和操作符<三>)
- android <初级篇> 开发环境的搭建——菜鸟的学习之路
- <转>hadoop学习之hadoop集群功能简单测试验证
- Linux之设备驱动学习简过程<一>
- Linux之设备驱动学习简过程<二>