配色: 字号:
C++(MFC)
2017-02-27 | 阅:  转:  |  分享 
  
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.调用析构函数销毁类对象。
献花(0)
+1
(本文系小小地盘首藏)