您的位置:首页 > 其它

测试驱动开发学习<三> 单元测试

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 特性

[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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: