⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testsuite.h

📁 symbian 3rd下的单元测试工具 里面包括一个框架 一个实例程序 还有使用手册 很好用的 我自己用过 有问题的可以交流奥
💻 H
字号:
/*Copyright (c) Penrillian Ltd 2003-2006. All rights reserved. Web: www.penrillian.com*/
#ifndef __CXXTEST__TESTSUITE_H
#define __CXXTEST__TESTSUITE_H

//
// class TestSuite is the base class for all test suites.
// To define a test suite, derive from this class and add
// member functions called void test*();
//

//Changed by Penrillian Ltd 14 August 2002
//Uses leaves and traps, rather than exception handling

#include <cxxtest/Runnable.h>
#include <cxxtest/TestListenerProxy.h>
#include <cxxtest/Descriptions.h>
#include <cxxtest/ValueTraits.h>
#include <e32std.h>

namespace CxxTest 
{
    class TestSuite : public TestListenerProxy
    {
    public:
		TBufC8<100> iSuiteName;
        TestSuite(const TDesC8& aSuiteName) : TestListenerProxy( 0 ), iSuiteName(aSuiteName), iMemoryLeakCells( 0 ) {}
		static TBuf8<30> ErrorReturn( TInt aError )
		{
			TBuf8<30> result;
			result.Format( _L8( "Left with code %d" ), aError );
			result.ZeroTerminate();
			return result;
		}
   
    protected:
	TInt iMemoryLeakCells;
	friend class TestRunner;
	virtual void setUp() {}
	virtual void tearDown() {}

	void AllowForMemoryLeak( TInt aCellsLeaked ) { iMemoryLeakCells += aCellsLeaked; }

#define CONVERT_DES_TO_CHAR_PTR(x)	(const char*)x.Des().PtrZ()

#       define TS_FAIL(e) failedTest(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, TS_AS_STRING(e) );return;

#       ifdef CXXTEST_HAVE_EH
#           define _TS_TRY TRAPD
#           define __TS_CATCH(e,f,l,m) if( e != KErrNone) { failedTest(f,l,((char*)CxxTest::TestSuite::ErrorReturn(e).Ptr())); return;}
#           define _TS_CATCH(e) __TS_CATCH(e,__FILE__,__LINE__,"")
#       else // !CXXTEST_HAVE_EH
#           define _TS_TRY
#           define __TS_CATCH(f,l,m)
#           define _TS_CATCH
#       endif // CXXTEST_HAVE_EH
        
#       define ETS_ASSERT(e)  if ( !(e) ) { failedAssert(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, #e);  }
        
#       define ETS_ASSERT_EQUALS(x,y) { if ( !((x) == (y)) ) \
	    failedAssertEquals(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, #x, #y, TS_AS_STRING(x), TS_AS_STRING(y)); }
        
#       define ETS_ASSERT_DELTA(x,y,d) { if ( ((y) < (x) - (d)) || ((y) > (x) + (d)) ) \
	    failedAssertDelta(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, #x, #y, #d, \
                              TS_AS_STRING(x), TS_AS_STRING(y), TS_AS_STRING(d) ); }
        
#       define ETS_ASSERT_DIFFERS(x,y) { if ( (x) == (y) ) \
	    failedAssertDiffers(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, #x, #y, TS_AS_STRING(x),TS_AS_STRING(y)); }

#       ifdef CXXTEST_HAVE_EH
			#define TS_ASSERT(e) {TRAPD(err, ETS_ASSERT(e)); _TS_CATCH(err); }
	        #define TS_ASSERT_EQUALS(x,y) { TRAPD (err,ETS_ASSERT_EQUALS(x,y)); _TS_CATCH(err); }
	        #define TS_ASSERT_DELTA(x,y,d) { TRAPD (err,ETS_ASSERT_DELTA(x,y,d)); _TS_CATCH(err);}
			#define TS_ASSERT_DIFFERS(x,y) {TRAPD (err,ETS_ASSERT_DIFFERS(x,y)); _TS_CATCH(err); }
	    #else
			#define TS_ASSERT(e)			ETS_ASSERT(e)
			#define TS_ASSERT_EQUALS(x,y)   ETS_ASSERT_EQUALS(x,y)
			#define TS_ASSERT_EQUALS_DESCRIPTOR( x, y ) \
				{ if ( !((x) == (y)) ) \
				failedAssertEquals(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, #x, #y, (const char*)CxxTest::ETS::DescriptorAsBuf8(x).Ptr(), (const char*)CxxTest::ETS::DescriptorAsBuf8(y).Ptr()); }
			#define TS_ASSERT_DELTA(x,y,d)  ETS_ASSERT_DELTA(x,y,d)
			#define TS_ASSERT_DIFFERS(x,y)  ETS_ASSERT_DIFFERS(x,y)
#       endif // CXXTEST_HAVE_EH


        
#       define TS_ASSERT_THROWS(e,t) { \
            int _ts_threw = -1; \
            TRAPD(err, e); \
            if(err == t ) { _ts_threw = 0; } else \
            if(err != 0 ) { _ts_threw = -2; } \
            if ( _ts_threw ) \
                failedAssertThrows(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, #e, #t, (_ts_threw == -2) ); }
        
#       define TS_ASSERT_THROWS_ANYTHING(e) { \
            int _ts_threw = -1; \
            TRAPD(err, e); \
            if(err != 0 ) { _ts_threw = 0; } \
            if ( _ts_threw ) \
                failedAssertThrows(CONVERT_DES_TO_CHAR_PTR(iSuiteName), __FILE__, __LINE__, #e, "...", false ); }
    };    
}



#endif // __CXXTEST__TESTSUITE_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -