📄 ctypetester.cpp
字号:
/**************************************************
//$$ BEGIN
CTokenList@@1@1@()
POSITION@@0@1@0
//$$ END
**************************************************/
/**************************************************
作 者:user1
建立日期:2006-8-31
修改日期:
说 明:测试文件,用于测试[CType]。
**************************************************/
#include "stdafx.h"
//
/////////////////////////////////////////////////////////////////////////////
#include "CTypeTester.h"
//
/////////////////////////////////////////////////////////////////////////////
void CTypeTester::ClassTest()
{
TEST_SOURCE_NAME(Class.cpp);
CUSTOM_TEST(CType);
//$$
TEST_CALL_BEGIN(CType,1,0)
TEST_CALL1(ParseBody_CTokenListR_POSITIONR())//ParseBody(CTokenList&,POSITION&)
TEST_CALL1(ParseDeclare_CTokenListR_POSITIONR())//ParseDeclare(CTokenList&,POSITION&)
TEST_CALL1(ParseMember_CTokenListR_POSITIONR())//ParseMember(CTokenList&,POSITION&)
TEST_CALL1(ParseTypedef_CTokenListR_POSITIONR())//ParseTypedef(CTokenList&,POSITION&)
TEST_CALL_END()
//$$
}
//
/////////////////////////////////////////////////////////////////////////////
CTypeTester::CTypeTester()
{
pObj = 0;
}
CTypeTester::~CTypeTester()
{
}
void CTypeTester::BeginCase(int arg)
{
switch(arg)
{
case ARG_DEFAULT:
{
pObj = new TESTCLASS();
break;
}
/*
case :
{
pObj = new TESTCLASS();
break;
}
case :
{
pObj = new TESTCLASS();
break;
}
*/
}
}
void CTypeTester::EndCase(int /*arg*/)
{
delete pObj;
pObj = 0;
}
//自定义测试,用MY_ASSERT(布尔表达式)断言预期输出
/////////////////////////////////////////////////////////////////////////////
void CTypeTester::CustomTest()
{
}
//
/////////////////////////////////////////////////////////////////////////////
void CTypeTester::ParseBody_CTokenListR_POSITIONR()
{
TEST_BEGIN(CType::ParseBody(CTokenList&,POSITION&));
//$$CASE_BEGIN(ParseBody_CTokenListR_POSITIONR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "public:CMyClass();~CMyClass();");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseBody(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-2 10:59:34]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "CMyClass();~CMyClass();");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseBody(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-2 10:59:34]
//??BVTEST_BEGIN_2(O,CTokenList,ioList,R,0,POSITION,ioPos,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( pObj->ParseBody(ioList, ioPos) );
//TEST_ASSERT();
//??BVTEST_END(O,2)
//$$ [3] [自动] [2006-9-2 10:59:34]
//$$CASE_END(ParseBody_CTokenListR_POSITIONR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseBody_CTokenListR_POSITIONR()
void CTypeTester::ParseDeclare_CTokenListR_POSITIONR()
{
TEST_BEGIN(CType::ParseDeclare(CTokenList&,POSITION&));
BOOL ret;
//$$CASE_BEGIN(ParseDeclare_CTokenListR_POSITIONR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "CMyClass {");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( ret = pObj->ParseDeclare(ioList, ioPos) );
TEST_ASSERT( pObj->mName == "CMyClass" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-2 11:54:51]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "CMyClass : public CList<TYPE, ARG_TYPE> {");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( ret = pObj->ParseDeclare(ioList, ioPos) );
TEST_ASSERT( pObj->mName == "CMyClass" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-17 17:19:2]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "CMyClass;");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( ret = pObj->ParseDeclare(ioList, ioPos) );
TEST_ASSERT( pObj->mName == "CMyClass" );
TEST_ASSERT( ret == FALSE );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-9-2 11:54:51]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "CMyClass : public CMyBase1{");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( ret = pObj->ParseDeclare(ioList, ioPos) );
TEST_ASSERT( pObj->mName == "CMyClass" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-9-2 11:54:51]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "CMyClass : public CMyBase1, CMyBase2{");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( ret = pObj->ParseDeclare(ioList, ioPos) );
TEST_ASSERT( pObj->mName == "CMyClass" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [5] [正常] [2006-9-2 11:54:51]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "CMyClass : public CMyBase1, public CMyBase2{");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( ret = pObj->ParseDeclare(ioList, ioPos) );
TEST_ASSERT( pObj->mName == "CMyClass" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [6] [正常] [2006-9-2 11:54:51]
//??BVTEST_BEGIN_2(O,CTokenList,ioList,R,0,POSITION,ioPos,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( ret = pObj->ParseDeclare(ioList, ioPos) );
//TEST_ASSERT();
//??BVTEST_END(O,2)
//$$ [7] [自动] [2006-9-2 11:54:51]
//$$CASE_END(ParseDeclare_CTokenListR_POSITIONR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseDeclare_CTokenListR_POSITIONR()
void CTypeTester::ParseMember_CTokenListR_POSITIONR()
{
TEST_BEGIN(CType::ParseMember(CTokenList&,POSITION&));
//$$CASE_BEGIN(ParseMember_CTokenListR_POSITIONR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "int mAge");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseMember(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-8 11:25:15]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "int GetAge()");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseMember(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-8 11:25:15]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "int GetAge(LPCTSTR iName){return name};");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseMember(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-9-10 12:44:35]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseMember(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-9-10 12:53:11]
//??BVTEST_BEGIN_2(O,CTokenList,ioList,R,0,POSITION,ioPos,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( pObj->ParseMember(ioList, ioPos) );
//TEST_ASSERT();
//??BVTEST_END(O,2)
//$$ [5] [自动] [2006-9-8 11:25:15]
//$$CASE_END(ParseMember_CTokenListR_POSITIONR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseMember_CTokenListR_POSITIONR()
void CTypeTester::ParseTypedef_CTokenListR_POSITIONR()
{
TEST_BEGIN(CType::ParseTypedef(CTokenList&,POSITION&));
//$$CASE_BEGIN(ParseTypedef_CTokenListR_POSITIONR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "int MYINT;");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseTypedef(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-8 18:39:47]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "struct tagStr{int i; in tj;} MYSTR;");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseTypedef(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-9 16:26:20]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "struct tagStr{int i; in tj;} MYSTR,*PMYSTR;");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseTypedef(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-9-9 16:36:50]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "int (pf*)()");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseTypedef(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-9-8 20:8:16]
//??BVTEST_BEGIN_2(O,CTokenList,ioList,R,0,POSITION,ioPos,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( pObj->ParseTypedef(ioList, ioPos) );
//TEST_ASSERT();
//??BVTEST_END(O,2)
//$$ [5] [自动] [2006-9-8 18:39:47]
//$$CASE_END(ParseTypedef_CTokenListR_POSITIONR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseTypedef_CTokenListR_POSITIONR()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -