ftfindID:ftfind
5803次访问,排名15501好友0人,关注者0
ftfind的文章
原创 9 篇
翻译 0 篇
转载 0 篇
评论 24 篇
最近评论
许式伟:我也在CSDN上开了专栏,有空过来逛逛。:)
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 cppunit 印象收藏

      新一篇: ftfind 桌面搜索引擎的设计文档 (1) | 旧一篇: winx 印象

      转贴于

      http://www.18ie.com/wordpress/?p=25

      看了好几天cppunit,代码读着真难受,简直让人恶心。 好几次,都想放弃用cppunit了,也不知道cppunit到底有何方便的,一帮子人在吹,到底谁在实践中用过? 还不如自己用assert()写测试,来的方便、快捷,容易读。 今天,总算找到一个容易明白些的例子,分析并写一下自己的体会 :

      class SimpleCalcTest : public CPPUNIT_NS::TestFixture{

      CPPUNIT_TEST_SUITE( SimpleCalcTest );
      CPPUNIT_TEST( testAdd );
      CPPUNIT_TEST( testSub );
      CPPUNIT_TEST( testMul);
      CPPUNIT_TEST( testDiv );
      CPPUNIT_TEST_SUITE_END();

      private :
      SimpleCalculator * sc;

      public:
      virtual void setUp(){
      sc = new SimpleCalculator();
      }
      virtual void tearDown(){
      delete sc;
      }

      void testAdd(){
      CPPUNIT_ASSERT_EQUAL( sc->add(5,6), 11);
      }

      void testSub(){
      CPPUNIT_ASSERT_EQUAL( sc->sub(5,6), -1 );
      }

      void testMul(){
      CPPUNIT_ASSERT_EQUAL( sc->mul(5,6), 30 );
      }

      void testDiv(){
      CPPUNIT_ASSERT_EQUAL( sc->div(12,6), 2 );
      }
      };

      CPPUNIT_TEST_SUITE_REGISTRATION( SimpleCalcTest );

      主函数如下:
      int main()
      {
      CPPUNIT_NS::TestResult r;
      CPPUNIT_NS::TestResultCollector result;
      r.addListener( &result );

      CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest()->run( &r );
      CPPUNIT_NS::TextOutputter out( &result, std::cout );
      out.write();
      return 0;
      }

      我对这段代码的理解:

      理解1) 主函数,天生就是这个样子,里面怪异的语句,不用去理解,也不用改动,除非你不怕浪费脑细胞,想去研究cppunit的内部结构。

      理解2)实际应用时,需要把要测试的类名换成自己的类名,修改2点:

      SimpleCalculator * sc;

      sc = new SimpleCalculator();
      把要测试的类名SimpleCalculator,换成自己的类名。

      至于SimpleCalcTest (如果你和我一样懒,连这个类名也不用动)

      理解3)如果想新加一个测试例,只需要2步:

      1)增加 CPPUNIT_TEST( testNew);

      2) 增加 void testNew(){
      CPPUNIT_ASSERT_EQUAL( sc->mul(5,6), 30 );  //自己修改
      }

      这些只是我看代码的体会,在自己脑子里转来转去的“悟道”,还没有在真实的开发环境中检验。

      看客当心被我“误导”呀。 

      马飞涛

      另外一个mfc dialog 类型的测试用例:
      http://codeproject.com/library/Using_CPPUnit.asp?print=true

      http://www.opensourcetesting.org/unit_c.php

       

      发表于 @ 2006年09月28日 19:47:00|评论(loading...)|编辑

      新一篇: ftfind 桌面搜索引擎的设计文档 (1) | 旧一篇: winx 印象

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © ftfind