51Testing软件测试论坛

标题: 浅谈Nunit和Cppunit [打印本页]

作者: 小南    时间: 2006-12-1 17:55
标题: 浅谈Nunit和Cppunit
  最近有时间看了下Nunit,玩Cppunit的时候就听说Nunit是C#下的一个单元测试工具,一直在做Web方面的测试,这块差点都忘记光了。还好和FP扯了两句,虽然他提到的对日外包项目我帮不上忙,但隐约想到了他写的Junit,突然想对此类unit测试工具再看一下。
  废话少说,立马下了个Nunit安上。依稀记得按上Cunit后在VS6.0的菜单项里会有多余的选项,也许是按了后Rational Pure之后多的,实在记不得了。稍微翻了下VS2005的菜单,貌似没多什么,不管它了。
  网上找了个简单的程序,扔了进去。开始比较:
1. UI方面:
  C会定义并启动自带的MFC,运行时会显示UI界面:
//添加CppUnit的MFC类型的测试执行器
CppUnit::MfcUi::TestRunner runner;
CppUnit::MfcUi::TestRunner runner_;
......
//运行执行器,显示执行器GUI界面
runner.run();
  
       N则程序里自带分析DLL的UI界面,只需把DLL拉入即可,但前提时测试代码必须写入那个DLL中。需要提一下的时N在下载文挡中包涵有各个.net版本,并且还有Zip类型的原始安装包,可供二次开发。
2.   执行方面,自己感觉两者涵义并无区别:
  C是以测试工厂来定义测试类,并以测试函数加入测试工厂,来形成一些测试项。
//为被测试类定义一个测试工厂;
CppUnit::TestFactoryRegistry &registry = CppUnit::TestFactoryRegistry::getRegistry("Add");
//测试函数:
void Add::TestCase1()
{
   ...
   CPPUNIT_ASSERT_EQUAL(两个比较值);
}
       N则也是这样的概念,新写一个Namespace,类似测试工厂的概念,然后在其中定义多个Class,类似测试项的概念。这些代码写在被测试对象DLL中,N的Namespace会用类似标签[TestFixture]标记,N的Class会用类似标签[Test]标记。其中运用的比较函数也十分类似:assert();
3. 显示结果方面:两者都以树型结构显示:
  C的树型结构以测试工厂和测试项作为分支;
  N的树型结构以Namespace和Class作为分支;
  C可以添加多个测试工厂,N是否可以添加多个Namespace还没有尝试...,不过在N的界面中有鼠标右键功能,可以很容易地判断哪个测试函数有问题。
  再者,N可以捕捉异常,可以把异常类写做测试项,C并为尝试...。

  N并未有实际项目接触,所以理解仍停留在最浅的层次。把一点小心得写下来,作为以后进一步研究的基础。
注:本文系个人总结,请误转载和引用,以免伤及无辜...
作者: songfun    时间: 2006-12-23 22:09
文章是你写的?
作者: qubao0451    时间: 2007-6-10 15:35
标题: 456
456
作者: 小南    时间: 2008-7-4 17:06
原帖由 songfun 于 2006-12-23 22:09 发表
文章是你写的?

不是我写的,还会是谁写的...
作者: sundyhui0322    时间: 2008-7-4 23:57
先留脚印,代楼主更新
作者: livehome2008    时间: 2008-7-6 11:47
写什么了?
作者: 云层    时间: 2008-7-7 12:25
单元测试框架的原理都是基本相似的
作者: 小南    时间: 2011-6-23 14:33
5年了...




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2