NUnit,NMock,NCover的使用和范例【转载】
2009-06-12 00:47
225 查看
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!陈希章原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/11/10/1330718.html原文标题:NUnit,NMock,NCover的使用和范例【转载】 原文发表:2008/11/10 7:36:00 |
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cooleader320/N_1.png)
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cooleader320/N_2.png)
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cooleader320/N_3.png)
[align=left]进度条的颜色反映了测试执行的状态:[/align] [align=left]· 绿色描述目前所执行的测试都通过[/align] [align=left]· 黄色意味某些测试忽略,但是这里没有失败[/align] [align=left]· 红色表示有失败[/align] [align=left]底部的状态条表示下面的状态:[/align] [align=left]· 状态.说明了现在运行测试的状态。当所有测试完成时,状态变为Completed.运行测试中,状态是Running:
What is Nmock? http://msdn.microsoft.com/msdnmag/issues/04/10/NMock/default.aspx http://nmock.org/ 为什么需要Mock
单元测试的基本原则应该是每次只验证一个方法,但是倘若遇到这样一种情况: 测试方法依赖于其他一些难以操控的东西,如:网络,数据库。或者是你测试的代码依赖于系统的其他部分,甚至是系统的多个其他部分。在这种情况下,倘若不小心,最终可能发现自己不小心几乎初始化了系统的每一个组件,而所有这一切只是为了给某一个测试创造必要的运行环境。这不仅花费了大量的时间,要命的是这样的测试用例会被引入大量的耦合因素,很难到达“单元”测试的目的。我们该怎么办呢? 这是Mock的测试方法就派上用场了。Mock的英文的字面意思是:嘲笑,模仿,欺骗的意思。通过Mock,我们可以创建很多真实对象的替代品,在测试用例中使用它。 什么情况下考虑使用Mock
1) 真实的对象具有不可确定的行为(如:程序需要通过web service获得股票的实时价格) 2) 对象很难被创建(如系统环境很难初始化) 3) 真实对象的某些行为很难被触发(如网络错误,数据库ID自增序列溢出) 4) 真实的对象令程序运行很缓慢 5) 真实对象含有UI等不方便测试的因素 6) 测试需要询问真实对象是如何被调用的(如异步调用的情况,需要验证Callbak的函数) 7) 真实的对象目前还不存在(如依赖于其他项目组或则需要新的硬件系统) 进行Mock测试的步骤 Sample 测试代码首先引用NMock的 框架
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cooleader320/NM_2.png)
NUnit示例代码
1) 定义一个接口来描述这个对象 2) 产品代码实现这个接口 3) 测试中Mock对象实现这个接口
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cooleader320/NM_1.png)
[align=left]What is NCover?[/align] http://ncover.org/ 一个好的测试应该具有如下品质: l 自动化(Automation) l 彻底的(Thorough) l 可重复的(Repeatable) l 独立的(Independent) l 专业的(Professional) 好的单元测试应该是彻底的,它测试了所有可能出现的情况。一个极端的情况是:把每一行代码,代码所有可能的分支,可能抛出的异常都作为测试对象。另外一种情况就是测试最有可能的情况:如各种边界值的情况。事实上,这是一个基于你的项目需求的决策问题。如果你想检验你的测试覆盖率的话,可以借助NCover 之类的工具。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cooleader320/NC_1.png)
所使用的命令行如下: "C:/Program Files/NCover/NCover.Console.exe" "C:/Program Files/NUnit 2.4.1/bin/nunit-console.exe" V:/Web/BCTest/Function/bin/Debug/BCTest.Function.dll /config=app.config /err=D:/NCoverResult/UTest4BC-Error.txt /xml=D:/NCoverResult/UTest4BC-Result.xml //x D:/NCoverResult/Coverage-BC.xml //l D:/NCoverResult/Coverage-BC_Log.log //v //a BC.Function
作者:陈希章 出处:http://blog.csdn.net/chen_xizhang 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
相关文章推荐
- NUnit,NMock,NCover的使用和范例【转载】
- NUnit,NMock,NCover的使用和范例【转载】
- NUnit详细使用方法 (注:转载他人blog)
- (转载自老骆驼)C++中的vector简单使用范例
- NUnit 使用手记(转载)
- 使用NUnit在.Net编程中进行单元测试【转载】
- 【转载】NUnit在Visual Studio 2010中的配置和使用
- [转载]使用NUnit在.Net编程中进行单元测试
- 利用Nunit,NMock,NCover作单元测试
- NCover的安装和使用-NUnit
- 利用Nunit,NMock,NCover作单元测试
- 使用NCover协同NUnit一起工作
- NCover的安装和使用-NUnit
- [转载]NUnit2.0详细使用方法
- [转载]单元测试之道(使用NUnit)
- 艾伟_转载:单元测试之道(使用NUnit)
- C++ C PlusPlus ,中的vector使用范例, 转载
- NUnit详细使用方法(转载)
- 使用NUnit在.Net编程中进行单元测试(转载)
- Nunit NMock Ncover单元测试