Nunit介绍

合集下载

程序员必备的十大工具

程序员必备的十大工具

程序员必备的十大工具在现代技术发展的背景下,程序员作为一种高新技术职业,需要使用多种工具来提高效率、简化工作流程并解决问题。

在这篇文章中,我们将介绍程序员必备的十大工具。

一、集成开发环境(IDE)集成开发环境是程序员工作中必不可少的工具之一。

它提供了一个集成的开发平台,包含了代码编辑器、调试器、编译器等功能,大大简化了开发过程。

常见的IDE包括Eclipse、IntelliJ IDEA和Visual Studio等。

二、版本控制系统(VCS)版本控制系统用于记录代码的变更历史,并提供了协作开发和代码管理的功能。

最流行的版本控制系统是Git,它具有分布式的特点,并且易于使用。

三、代码编辑器代码编辑器是程序员最常用的工具之一,用于编辑和编写代码。

它们提供了代码高亮、自动补全、代码片段等功能,增强了编码效率。

一些知名的代码编辑器包括Visual Studio Code、Sublime Text和Atom 等。

四、调试器调试器用于定位和修复程序中的错误。

它允许程序员逐行执行代码,并提供变量值、执行堆栈等信息,帮助程序员找到问题所在。

GDB和Xcode是常用的调试工具。

五、性能分析工具性能分析工具用于评估和优化程序的性能。

它可以检测瓶颈、内存泄漏和资源消耗等问题,并提供性能优化建议。

常用的性能分析工具包括Valgrind、JProfiler和XHProf等。

六、虚拟机和容器技术虚拟机和容器技术可以创建虚拟化的开发和测试环境,提供了隔离、可扩展和便捷的部署方式。

常用的虚拟化平台有VirtualBox和VMware,而Docker是一种常见的容器技术。

七、文档生成工具文档生成工具用于自动生成文档,减少手动编写文档的工作量。

常用的文档生成工具包括Javadoc和Swagger等。

八、单元测试框架单元测试框架用于编写和执行单元测试,确保代码的行为符合预期。

JUnit和NUnit是常用的单元测试框架。

九、性能测试工具性能测试工具可以模拟并评估系统在不同负载下的性能。

NUnit使用详解(一)

NUnit使用详解(一)

NUnit使⽤详解(⼀)NUnit是⼀个单元测试框架,专门针对于.NET来写的,它是是xUnit的⼀员。

NUnit完全由C#语⾔来编写,并且编写时充分利⽤了许多.NET的特性,⽐如反射,客户属性等等.最重要的⼀点是它适合于所有.NET语⾔.单元测试:作为程序员在开发过程中,不可避免地要对软件的类及其⽅法进⾏测试。

在Web页⾯的测试过程中,好多朋友喜欢把测试结果使⽤Response.Write()显⽰在页⾯上。

⽽在类库组件的开发时,由于没有可视化界⾯,有时不得不为该类库添模⼀个测试的项⽬(Console,WinForm,等),在该项⽬中调⽤类库组件的功能,以查看测试结果。

上⾯这种测试不是我们推荐的⽅法,因为我们在测试的时候应遵循以下原则:尽量不要破坏原有的代码结构,即不要在原代码中添加⼀些冗余的测试代码。

测试模块应尽可能完整地展现测试结果。

测试模块不应⽤完即扔掉,要保存以备后续的维护测试。

⼀、NUnit运⾏界⾯《图1》在右边有⼀个进度条,如果所有测试案例运⾏成功,就为绿⾊,反之如果有⼀个不成功,则为红⾊,但也有黄⾊的.绿⾊描述⽬前所执⾏的测试都通过黄⾊意味某些测试忽略,但是这⾥没有失败红⾊表⽰有失败左边的树状⽬录是我们们编写的每⼀个测试单元。

底部的状态条状态:当所有测试完成时,状态变为Completed.运⾏测试中,状态是Running: <test-name>Test Cases:说明加载的程序集中测试案例的总个数。

这也是测试树⾥叶⼦节点的个数。

Tests Run:已经完成的测试个数。

Failures:到⽬前为⽌,所有测试中失败的个数.Time:显⽰运⾏测试时间(以秒计)⼆、在VS2008中配置NUnit进⾏测试1.新建⼀个类库项⽬。

2.在解决⽅案中的项⽬图标上右击,选择“属性”。

3.点击左边的“调试”标签4.在“启动操作”中选择“启动外部程序”,并指明NUnit程序的运⾏路径。

5.在启动选项中的“⼯作⽬录”下,指明当前类库项⽬的DLL⽂件的所在路径。

通过命令行方式使用NUnit进行UT

通过命令行方式使用NUnit进行UT

通过命令行方式使用NUnit进行UT极限编程( XP )越来越进入程序员的眼球,TD D(Test Drived Design)也越来越普及,UT( Unit Test ing)是TDD 的第一步,主要面向的是一线的开发人员,而不是项目经理、系统设计与分析人员甚至是测试人员,当然UT的一些方法也可以用于后续的测试,但从极限编程(XP)越来越进入程序员的眼球,TD D(Test Drived Design)也越来越普及,UT(Unit Test ing)是TDD的第一步,主要面向的是一线的开发人员,而不是项目经理、系统设计与分析人员甚至是测试人员,当然UT的一些方法也可以用于后续的测试,但从概念上来讲那已经不算UT了。

UT是“开发者写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确”。

xUnit系列是专门用户UT的框架(工具),包含了对目标代码进行UT的类库。

NUnit 是xUnit系列成员之一,用于对.NET Framework下的语言(实际上只要符合CTS规范的语言NUnit都支持)所写的代码进行UT。

UT的主要目的是提高代码的健壮性和提高代码的生产效率,NUnit 就是以此为初衷进行设计的,所以对于使用 IDE开发而言,添加一下nunit.framework.dll的引用就可以直接在工程中进行单元测试,引用细节由IDE本身来执行,对程序员来讲是透明的。

如果没有使用等大型IDE的,比如使用编辑器+SDK+命令行的方式进行编码,或者干脆就使用Emacs,这时很多事情就要手动进行了,这一过程可能有些boring,这也是没办法的事情,因为编辑器+命令行本来生产力就不高,但确是学习的好方式(也是我喜欢的方式)。

这里,如果被测试代码和测试代码写在不用的源文件里,进行一次UT典型步骤如下(以C#为例并假设两个文件分别为target.cs 和test.cs):·编译被测试代码为DLL或者Module:csc /t:library target.cs 或者csc /t:module target.cs·编译测试文件为DLL,并添加对外部库文件nunit.framework.dll和target.dll的引用:csc /t:library /r:c:\progra~1\nunit2~1.2\bin\nunit.framework.dll;target.dll test.cs或者只添加对外部库文件nunit.framework.dll的引用并添加target模块:csc /t:library /r:c:\progra~1\nunit2~1.2\bin\nunit.framework.dll/addmodule:module test.cs·NUnit命令行:nunit-console test.dll或者运行NUnit GUI打开test.dll,进行测试,生成测试报告。

软件开发与测试技术作业指导书

软件开发与测试技术作业指导书

软件开发与测试技术作业指导书第1章软件开发基础 (3)1.1 软件开发生命周期 (3)1.2 程序设计语言 (4)1.3 开发工具与环境 (4)第2章软件测试概述 (4)2.1 软件测试的定义与目的 (4)2.2 软件测试的分类 (5)2.3 软件测试流程 (6)第3章需求分析 (6)3.1 需求分析的重要性 (6)3.2 需求获取方法 (6)3.3 需求规格说明书 (7)第4章设计与架构 (8)4.1 软件设计原则 (8)4.1.1 模块化原则 (8)4.1.2 抽象原则 (8)4.1.3 信息隐藏原则 (8)4.1.4 开放封闭原则 (8)4.2 设计模式 (8)4.2.1 创建型模式 (8)4.2.2 结构型模式 (9)4.2.3 行为型模式 (9)4.3 软件架构 (9)4.3.1 分层架构 (9)4.3.2 客户端服务器架构 (9)4.3.3 微服务架构 (9)4.3.4 事件驱动架构 (9)4.3.5 云计算架构 (9)第5章编码与实现 (10)5.1 编码规范 (10)5.1.1 通用规范 (10)5.1.2 语言特定规范 (10)5.2 代码质量 (10)5.2.1 可维护性 (10)5.2.2 可读性 (10)5.2.3 可靠性 (11)5.3 代码审查 (11)5.3.1 审查流程 (11)5.3.2 审查内容 (11)第6章单元测试 (11)6.1 单元测试概述 (11)6.3 单元测试策略 (12)第7章集成测试 (12)7.1 集成测试概述 (12)7.2 集成测试策略 (13)7.2.1 自下而上集成测试 (13)7.2.2 自上而下集成测试 (13)7.2.3 大棒集成测试 (13)7.2.4 基于功能的集成测试 (13)7.2.5 基于接口的集成测试 (13)7.3 集成测试用例设计 (13)7.3.1 设计原则 (13)7.3.2 设计方法 (14)第8章系统测试 (14)8.1 系统测试概述 (14)8.2 功能测试 (14)8.2.1 等价类划分法 (14)8.2.2 边界值分析法 (14)8.2.3 错误推测法 (14)8.2.4 功能测试用例设计 (14)8.2.5 功能测试执行与缺陷跟踪 (14)8.3 功能测试 (14)8.3.1 功能测试概述 (15)8.3.2 功能测试指标 (15)8.3.3 功能测试方法 (15)8.3.4 功能测试工具 (15)8.3.5 功能瓶颈分析及优化 (15)8.4 安全测试 (15)8.4.1 安全测试概述 (15)8.4.2 常见安全漏洞 (15)8.4.3 安全测试方法 (15)8.4.4 安全测试工具 (15)8.4.5 安全测试策略与实施 (15)第9章验收测试与上线 (15)9.1 验收测试 (15)9.1.1 验收测试概述 (15)9.1.2 验收测试准备 (15)9.1.3 验收测试实施 (16)9.1.4 验收测试通过标准 (16)9.2 上线流程 (16)9.2.1 上线准备 (16)9.2.2 上线实施 (16)9.2.3 上线后评估 (16)9.3 生产环境监控 (16)9.3.2 监控内容 (17)9.3.3 监控工具与策略 (17)第10章软件测试管理 (17)10.1 测试计划与策略 (17)10.1.1 测试目标 (17)10.1.2 测试范围 (17)10.1.3 测试方法 (17)10.1.4 测试流程 (17)10.1.5 测试策略 (17)10.2 测试团队组织 (17)10.2.1 测试团队角色与职责 (17)10.2.2 测试团队人员配置 (18)10.2.3 测试团队协作 (18)10.3 测试工具与自动化 (18)10.3.1 测试工具的选择 (18)10.3.2 自动化测试 (18)10.3.3 自动化测试实施 (18)10.4 持续集成与持续部署 (18)10.4.1 持续集成 (18)10.4.2 持续部署 (18)10.4.3 持续集成与持续部署工具 (18)10.4.4 持续集成与持续部署实践 (18)第1章软件开发基础1.1 软件开发生命周期软件开发生命周期(SDLC)是指从软件需求的识别到软件退役的整个过程中,软件开发所经历的一系列阶段。

nunit测试报告

nunit测试报告

Nunit测试报告NUnit是一个用于测试.NET代码的单元测试框架,它提供了一种简单且灵活的方式来进行单元测试。

本文将介绍如何创建并使用NUnit测试报告。

步骤一:安装NUnit框架首先,我们需要安装NUnit框架。

可以通过NuGet包管理器来安装NUnit。

打开Visual Studio并选择你的项目,在解决方案资源管理器中右键单击项目,选择“管理NuGet程序包”。

在NuGet包管理器中搜索“NUnit”,然后安装最新版本的NUnit框架。

步骤二:创建测试类在项目中创建一个新的测试类,该类将用于定义测试方法。

测试类应该以“Test”结尾,以便与其他类进行区分。

以下是一个示例测试类的代码:using NUnit.Framework;[TestFixture]public class MyTests{[Test]public void TestAddition(){int result = Calculator.Add(2, 3);Assert.AreEqual(5, result);}}在上面的示例中,我们定义了一个名为“MyTests”的测试类,并在其中定义了一个名为“TestAddition”的测试方法。

在测试方法中,我们调用了一个名为“Calculator.Add”的方法来执行加法运算,并使用断言来验证结果是否符合预期。

步骤三:运行测试完成测试类的编写后,我们可以使用NUnit Test Runner来运行测试。

在Visual Studio中,选择“测试”菜单,然后选择“运行”>“所有测试”。

这将会运行项目中的所有测试方法,并生成测试报告。

步骤四:查看测试报告当测试完成后,我们可以查看生成的测试报告。

NUnit会生成一个包含测试结果的HTML文件。

打开该HTML文件,你将看到一个详细的测试报告,其中包含测试的结果、通过的测试用例、失败的测试用例以及其他有关测试的统计信息。

结论通过使用NUnit,我们可以轻松地进行单元测试,并生成详细的测试报告。

软件系统测试作业指导书

软件系统测试作业指导书

软件系统测试作业指导书第1章软件测试基础 (4)1.1 软件测试概念 (4)1.2 软件测试目的和意义 (4)1.3 软件测试分类 (4)第2章软件测试过程 (5)2.1 测试计划 (5)2.1.1 目的与范围 (5)2.1.2 测试策略 (5)2.1.3 测试资源 (5)2.1.4 测试进度安排 (5)2.1.5 风险评估与应对措施 (6)2.2 测试设计 (6)2.2.1 测试需求分析 (6)2.2.2 测试用例设计 (6)2.2.3 测试数据准备 (6)2.2.4 测试环境搭建 (6)2.3 测试执行 (6)2.3.1 测试用例执行 (6)2.3.2 缺陷报告 (6)2.3.3 测试结果记录 (6)2.4 缺陷跟踪 (6)2.4.1 缺陷分类与优先级 (6)2.4.2 缺陷生命周期管理 (6)2.4.3 缺陷跟踪工具 (7)2.4.4 缺陷分析 (7)第3章单元测试 (7)3.1 单元测试概述 (7)3.2 单元测试方法 (7)3.2.1 白盒测试 (7)3.2.2 黑盒测试 (7)3.3 单元测试工具 (8)第4章集成测试 (8)4.1 集成测试概述 (8)4.2 集成测试策略 (8)4.3 集成测试用例设计 (9)第5章系统测试 (9)5.1 系统测试概述 (9)5.2 功能测试 (9)5.2.1 目的 (9)5.2.2 测试内容 (9)5.2.3 测试方法 (10)5.3.1 目的 (10)5.3.2 测试内容 (10)5.3.3 测试方法 (10)5.4 安全测试 (10)5.4.1 目的 (10)5.4.2 测试内容 (10)5.4.3 测试方法 (11)第6章验收测试 (11)6.1 验收测试概述 (11)6.1.1 验收测试概念 (11)6.1.2 验收测试目的 (11)6.1.3 验收测试范围 (11)6.1.4 验收测试执行主体 (11)6.2 验收测试方法 (12)6.2.1 功能测试 (12)6.2.2 非功能测试 (12)6.2.3 用户场景测试 (12)6.2.4 回归测试 (13)6.3 验收测试用例设计 (13)6.3.1 功能测试用例设计 (13)6.3.2 非功能测试用例设计 (13)6.3.3 用户场景测试用例设计 (13)6.3.4 回归测试用例设计 (13)第7章回归测试 (14)7.1 回归测试概述 (14)7.1.1 基本概念 (14)7.1.2 目的 (14)7.1.3 重要性 (14)7.2 回归测试策略 (14)7.2.1 全量回归测试 (14)7.2.2 增量回归测试 (14)7.2.3 差异化回归测试 (15)7.3 回归测试用例选取 (15)第8章自动化测试 (15)8.1 自动化测试概述 (15)8.1.1 自动化测试概念 (15)8.1.2 自动化测试分类 (15)8.1.3 自动化测试应用场景 (16)8.2 自动化测试工具 (16)8.2.1 Selenium (16)8.2.2 JMeter (16)8.2.3 Appium (16)8.3 自动化测试框架 (17)8.3.2 Cucumber (17)8.3.3 Robot Framework (17)8.3.4 Jenkins (17)第9章软件测试管理 (17)9.1 测试团队组织 (17)9.1.1 测试团队构成 (17)9.1.2 测试团队职责 (17)9.1.3 测试团队培训与评估 (18)9.2 测试过程管理 (18)9.2.1 测试计划 (18)9.2.2 测试设计 (18)9.2.3 测试执行 (18)9.2.4 缺陷管理 (18)9.2.5 测试报告 (18)9.3 测试风险管理 (18)9.3.1 风险识别 (18)9.3.2 风险评估 (18)9.3.3 风险应对 (18)9.3.4 风险监控 (19)第10章软件测试案例与实践 (19)10.1 软件测试案例概述 (19)10.1.1 测试案例定义 (19)10.1.2 测试案例的重要性 (19)10.1.3 测试案例的分类 (19)10.1.4 测试案例的组成部分 (19)10.2 软件测试案例设计方法 (19)10.2.1 黑盒测试案例设计方法 (19)10.2.2 白盒测试案例设计方法 (19)10.2.3 灰盒测试案例设计方法 (19)10.2.4 静态测试案例设计方法 (19)10.2.5 动态测试案例设计方法 (19)10.2.6 基于风险的测试案例设计方法 (19)10.3 软件测试案例实施与总结 (19)10.3.1 测试环境搭建 (19)10.3.2 测试数据准备 (19)10.3.3 测试执行与记录 (19)10.3.4 缺陷跟踪与管理 (19)10.3.5 测试结果分析 (19)10.3.6 测试总结报告 (19)10.3.7 测试案例迭代与优化 (19)第1章软件测试基础1.1 软件测试概念软件测试是指在软件开发生命周期的各个阶段,依据规定的要求和标准,采用适当的测试方法、工具和策略,对软件产品进行评估、验证和确认的活动。

Nunit测试

Watin 加Nunit测试Web 测试实践for .Net —WatiN测试对于一个应用系统来说是非常关键的,但沌单元测方式(XUnit)的方式在B/S结构的信息管理系统中仍然有一些不足,比如要测试界面元素,网页导行方面,就需要其它的一些测试架框作为辅助,这两天开始查找并学习了一些网站测试方面的框架。

把学习心得发出来与大家工享。

一、几种常用框架的介绍。

1、NUnitAsp 官方网址:/优点:可以在测试代码中直接使用使用调用网页中的服务器控件。

并获取该控件的属性。

缺点:不够灵活。

正如他的官方网上所说的:NUnitAsp is for unit testing code-behind only. It's meant for programmers, not QA teams, and it's not very good for QA-style acceptance tests. It only tests server-side logic. JavaScript and other client-side code is ignored. But if you're using , it's an essential part of your programmers' toolset.NUnitAsp 主要是对后台代码进行单元测试,即它主要是用于测试服务端的逻辑,JavaScript和其它的客户端代码是被忽略的。

2、WatiN 官方网址:/优点:非常灵活,可以模拟用户在客户端浏览器中的大部份操作,API也比较简单。

缺点:文档较少,官方网上的例子也很少。

因为我的目的是测试网站里网页的导行,主要就是要模拟用户的操作,因此选择了使用WatiN。

下面的内容也主要是讲述它的使用。

二、最简单的例子下面先看一下官司方网站上给出的一个最简单的例子。

[Test]public void SearchForWatiNOnGoogle(){/*这一句代码会打开一个IE浏览器,打开网址。

NUnit详细使用方法2

NUnit详细使用方法前一段时间,有人问我在.NET里如何进行TDD 开发.这个问题促使我想对NUnit做一个详细的介绍.因为我们大家都知道NUnit是在.NET进行TDD的利器. 如果你已经知道很多关于NUnit的应用,请指出我的不对之处和提出一些建议,使本文更加完善.如果你对NUnit还不是很了解前一段时间,有人问我在.NET里如何进行TDD开发.这个问题促使我想对NUnit做一个详细的介绍.因为我们大家都知道NUnit是在.NET 进行TDD的利器.如果你已经知道很多关于NUnit的应用,请指出我的不对之处和提出一些建议,使本文更加完善.如果你对NUnit还不是很了解的话,我建议你还是阅读一下.本文分为以下部分:1. TDD的简介首先什么是TDD呢?Kent Beck在他的<<测试驱动开发>>(Addison-Wesley Professional,2003)一书中,使用下面2个原则来定义TDD:·除非你有一个失败的自动测试,永远不要写一单行代码.·阻止重复我想第一个原则是显而易见的.在没有失败的自动测试下就不要写代码.因为测试是嵌入在代码必须满足的需求中.如果没有需求,就没有必要实现任何东西.所以这个原则阻止我们去实现那些没有测试和在解决方案中不需要的功能.第二个原则说明了在一个程序中,不应该包含重复的代码.如果代码重复,我想这就是不好的软件设计的象征.随着时间的流逝,它会对程序造成不一致的问题,并且使代码变非常混乱,因为我们时常不会记得重复代码的位置.如果发现代码重复,我想我们应该立即删除代码重复.其实这就涉及到重构了.在这里我就不多讲了.一般来说,测试分为2种类型,一是程序员自己的测试,另外一种是客户的测试.关于客户测试,我推荐一个FIT的框架,非常不错。

在这里,我们讲的TDD就是程序员测试.那么什么是程序员测试呢?我认为就是我们常说的单元测试.既然是单元测试,在.NET里势必会用到某些工具,目前最著名恐怕就是我即将介绍的NUnit了。

NUnit基本使用方法

NUnit基本使⽤⽅法通常的单元测试框架都以他们⽀持的语⾔的开头字母加上Unit作为名字,他们统称为xUnit框架。

C++的叫做CppUnit,Java的叫做JUnit,.Net的叫做NUnit。

当然不是所有的都这么命名,但⼤部分如此。

下⾯我主要讲解⼀下NUni的⼀些基本操作。

1:Nunit两个重要属性1.1:[TestFixture]这个是标识包含⾃动化测试的类,可能改成TestClass⼤家更加理解。

但是代码是⽆法编译过去的。

1.2:[Test]这个是标识这个⽅法需要⾃动化测试的。

记得把这个属性加在要测试的⽅法上。

2:编写第⼀个单元测试2.1:⼀个单元测试通常包含三个⾏为:2.1.1:准备对象(就是对哪个对象就⾏操作)2.1.2:操作对象(对对象进⾏⼀些逻辑处理)2.1.3:断⾔(Assert)和预判产⽣的结果对⽐2.2:编写⼀个判断后缀名的⽅法public bool IsValidExtensions(string fileName){if (string.IsNullOrWhiteSpace(fileName)) throw new ArgumentNullException("fileName");var extension = Path.GetExtension(fileName);if (extension.Contains("pdf")){return true;}return false;}2.3:编写测试⽅法2.3.1:Assert这个类Assert.IsFalse(bool condition, string message)参数1:返回的结果参数2:展⽰失败的信息Assert.AreEqual(int expected, int actual, string message)参数1:期望的结果参数2:实际的结果参数3:展⽰失败的信息当然Assert很多⽅法可以⾃⼰去学习。

NUnit

Nunit做C#的单元测试作者:林东峰MSN:dongfengl@QQ:430369E-mail:lindongfeng@日期:2006年2月28日前言大部分书籍介绍的内容,看了一百页其中有用的也就十多页的内容,本着取其精华的原则,写了下面的学习心得,同时在学习心得中加入了部分自己对单元测试的一些看法。

可能看法过于片面,对本文有不同看法的朋友们,可以联系我(晚上一般MSN会在线),我们一起做一下讨论。

1.测试组如何做单元测试单元测试是针对最小的可测试软件元素(单元)的,它所测试的内容包括单元的内部结构(如逻辑和数据流)以及单元的功能和可观测的行为。

使用白盒测试方法测试单元的内部结构,使用黑盒测试方法测试单元的功能和可观测的行为。

由于开发方式的不同,单元测试一般划分方法如下:1.面向对象的软件开发:以Class(类)作为测试的最小单元。

以方法的内部结构作为测试的重点。

2.结构化的软件开发:以模块(函数、过程)作为测试的最小单元。

对于中国目前的情况,开发人员对于单元测试(包括测试)并不是很认同的情况下,大部分公司会把这部分工作推给测试组,那么测试组进行单元测试的时候,又存在着什么问题呢?测试组做单元测试的时候又有那些必要条件呢?1.代码的可读性开发人员在写代码的时候都有自己的习惯,比如在写一个新的类的时候,类的名称有的用英语,有的用汉语拼音。

而对于注释而言,有的存在部分,有的从头到尾根本没有注释(这样的代码让开发人员过半年自己再看,他自己也可能不知道这段代码实现的是什么功能)那么是否有一段可用代码编写规范在执行,开发人员是否都按规范来进行开发,一段开发人员自己都看不明白的代码,测试组的成员又怎么能看明白?可见规范的代码编写是进行单元测试必不可少的一部分。

2.设计单元测试在进行单元测试之前需要弄清楚被测试代码实现的功能和相应的逻辑关系;同时还要考虑到测试的输入内容。

也就是说,测试用例的设计。

用例的设计要保证面面俱到,是否覆盖了每一条路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Test Suite
一个test fixture包含一个或多个测试方法, 每个方法包含一个或多个断言。一个程序集 (assembly)可以包含多个test fixture 可以把现存的多个test fixture组合进一个 test suite中。一个test suite是一些 TestFixture类的集合。
}
}
using NUnit.Framework; [TestFixture] public class TestLargest { [Test] public void LargestOf3() { Assert.AreEqual(9, rgest(new int[] {8,9,7})); } }
AreSame
Assert.AreSame(expected, actual [, string message]) Asserts that expected and actual refer to the same object, and fails the test if they do not. The message is optional.
Assert
在NUnit 中,用Assert(断言)进行比较, Assert 是一个类,它包括以下方法: AreEqual,AreSame,Equals, Fail, Ignore,IsFalse,IsNotNull,
[Test] [ExpectedException(typeof(Argument Exception))] public void Empty() { rgest(new int[] { }); }
suite.Add(new DatabaseTests());

}
}
}
suite.Add(new FredsTests()); // add others... return suite;
Category 属性
NUnit用Category 属性提供了标记和运行一个个 单独的测试和fixture的简单方法。一个Category 属性是指你定义的一个名字。你可以把不同的测试 方法关联到一个或多个Category ,然后在运行测 试的时候,选择你想要运行的Category 。 Category 是以attribute的形式来指定的。当声明 方法的时候,你可以提供一个字符串来指定它的 Category 。然后,在你运行测试的时候,可以指 定你要运行那些Category 。

[7, 8, 9] -- 9 [8, 9, 7] -- 9 [9, 7, 8] -- 9 [7, 9, 8, 9] --9 [1] -- 1 [-9, -8, -7] -- -7 []
using System; public class Cmp { public static int Largest(int[] list) { int index, max=Int32.MaxValue; } if (list.Length == 0) { throw new ArgumentException("Empty list"); } for (index = 0; index < list.Length-1; index++) { if (list[index] > max) { max = list[index]; } return max;
测试代码和产品代码
测试代码必须做的几件事
准备测试所需要的各种条件(创建所有必须 的对象,分配必要的资源等) 调用要测试的方法 验证被测试方法的行为和期望是否一致 完成后清理各种资源
当执行测试代码的时候,请记住你从来不直 接运行产品代码,至少,并非像一个普通用 户那样。而是借助于测试代码,让它根据小 心控制的条件来执行产品代码
NUnit介绍
吴鸿韬 cshongtaowu@
绿色 描述目前所执行的测试都通过 黄色 意味某些测试忽略,但是这里没有失败 红色 表示有失败
状态.说明了现在运行测试的状态。当所有测试完 成时,状态变为Completed.运行测试中,状态是 Running: <test name> (<test-name>是正在运行的测 试名称)。 Test Cases说明加载的程序集中测试案例的总个 数。这也是测试树里叶子节点的个数。 Tests Run 已经完成的测试个数。 Failures 到目前为止,所有测试中失败的个数. Time 显示运行测试时间(以秒计)
Test Suite
using NUnit.Framework; using NUnit.Core; // Requires nunit.core.dll [TestFixture] public class TestClassSuite {
[Suite] public static TestSuite Suite { get { TestSuite suite = new TestSuite("Name of Suite");
NUnit Framework
using NUnit.Framework; [TestFixture] public class TestSimple { [Test] public void LargestOf3() { Assert.AreEqual(9, rgest(new int[] {8,9,7})); } }
Test Attribute
Test 属性用来标记一个类(已经标记为 TestFixture)的某个方法是可以测试的 这个方法没有任何参数,其实测试方法必须 没有参数.如果我们定义方法不对的话,这个 方法不会出现在测试方法列表中.也就是说 在NUnit 的界面左边的工作域内,看不到这 个方法. 这个方法不返回任何参数,并且必须为 Public.
TestFixture Attribute
本属性标记一个类包含测试,做为一个测试 的类,这个类还有一些限制 必须是Public,否则NUnit 看不到它的存在. 它必须有一个缺省的构造函数,否则NUnit 不会构造它. •构造函数应该没有任何副作用,因为NUnit 在运行时经常会构造这个类多次,如果要是 构造函数要什么副作用的话,那不是乱了.
Fail
Assert.Fail([string message]) Fails the test immediately, with the optional message. This might be used to mark sections of code that should not be reached, but isn't really used much in practice.
IsTrue
Assert.IsTrue(bool condition [, string message]) Asserts that the given boolean condition is true, otherwise the test fails. The message is optional.
AreEqual---floating point numbers
Assert.AreEqual(expected, actual,tolerance [, string message])
Assert.AreEqual(3.33, 10.0/3.0, 0.01, "Wanted 3 1/3");
使用断言
一般而言,一个测试方法会包含有多个断言, 因为需要验证该方法的多个方面以及内在的 多种联系。当一个断言失败的时候,该测试 方法将会被中止---从而导致该方法剩余的 断言这次就无法执行了。此时只能在继续测 试之前先修复这个失败的测试。 当有测试失败的时候,无论如何都不能给原 有代码再添加新的特性。
IsNull
Assert.IsNull(object [, string message]) Assert.IsNotNull(object [, string ]) Asserts that the given object is null (or not null), failing otherwise. The message is optional.
NUnit断言
NUnit提供了一些辅助函数用于帮助你确定 某个被测函数是否正常工作,这些函数通常 被称为断言 断言是单元测试最基本的组成部分。
AreEqual
Assert.AreEqual(expected, actual [, string message]) expected is a value you hope to see (typically hard-coded), and actual is a valueactually produced by the code under test. message is an optionalmessage that will be reported in the event of a failure.You can omit the message argument and simply provide the expected and actual values.
static int Largest(int[] list);
using System; public class Cmp { public static int Largest(int[] list) { int index, max=Int32.MaxValue; for (index = 0; index < list.Length-1; index++) { if (list[index] > max) { max = list[index]; } } return max; } }
相关文档
最新文档