1-2月份做的DB工具有如下问题:一、代码问题变量名字的起法if(this->m_Dquote){dq="\"";dq_v=" \"\"";}else{dq="";dq_v="";}根据模式的不同来选择引号的多少,模式分为:普通模式和修饰模式3、i ntCDBAccessMacroTool::RET_WARN=-50;//返回值//文字超过20的判断if(che ckLength(arrRead.GetAt(COL_MANAGENAME),20)==RET_WARN){//不正确的 数据的数目m_ErrorDataCount++;//警告文件CLog::writeWarn(msg);}4、//表名是Null 的场合if(arrRead.GetAt(COL_MANAGENAME).IsEmpty())5、//判断文字是日本语//@pa ramstr表名的字符//@returntrue:有false:无boolCDBAccessMacroTool: :isMultiByteSJIS(CStringstr){unsignedcharuc=str.GetAt(0);if ((0x81<=uc&&uc<=0x9F)||(0xE0<=uc&&uc<=0xEF)){return true;}returnfalse;}6、//文字不使用特殊字符//@paramstr表名//@returnt rue:有false:无boolCDBAccessMacroTool::isUnavailableFilename(CStr ingstr){//補足:FindOneOf関数は2バイト文字の下位1バイトにヒットしない。(表[955C]に対して\[5C ]など)CStringfindStr="\\/:?\"<>|";if(str.FindOneOf(findStr)>= 0){returntrue;}returnfalse;}文件名不能使用特殊符号\/:?"<>|的判断7、for循坏的iF or(inti,.,.)i写在for里面可以直接释放。二、gtest测试1、准备工作GoogleTest的编译src\_gte st\googletest-release\googletest\msvc\gtest.sln>ビルド>バッチビルド>すべて選 択してリビルド在msvc里面的Debug或是Release目录里看到编译出来的gtestd.lib或是gtest.lib?文件。 googletest-releaseは「googletest-release-1.8.0.zip」を展開してリネームしたものです。 打开有俩个工程Gtest是测试用的。DBAccessMacroT ool要测试的代码。2、詳細-SetUp初期化和输出目录的设定。-TearDown输出目录是为了测试用的东西、最后会一 起消除。想确认结果情况的话,可以把它留下来。-DelDirForce从TearDown呼出的目录一起消除。-diffSt rFile测试结果的确认。参数一是解答数据的(CString)、参数二是出力文件的路径、で读入文件内容、和解答做比较、返回O K/NG。-TEST_F(CDBAccessMacroToolTest,checkCOBDE1)例。.cobde文件的确 认+入力文件的生成+tool入力文件的摄者+tool.execute的运行+生成cobde文件和简答数据进行比较 +EXPECT_TRUEとdiffStrFile来确认结果使用测试固件比单纯调用TEST宏稍微麻烦一些:1.从gtest 的testing::Test类派生一个类,用public或protected定义以下所有成员。2.(可选)建立环境:使用默认构造 函数,或定义一个虚成员函数virtualvoidSetUp()。3.(可选)销毁环境:使用析构函数,或定义一个虚成员函数vi rtualvoidTearDown()。4.用TEST_F定义测试,写法与TEST相同,但测试用例名必须为上面定义的类名。每 个带固件的测试的执行顺序是:1.调用默认构造函数创建一个新的带固件对象。2.立即调用SetUp函数。3.运行TEST_F体。4.立即调用TearDown函数。5.调用析构函数销毁类对象。 |
|