51Testing软件测试论坛
标题:
看看这样的单元测试,大家评价一下
[打印本页]
作者:
ricmy
时间:
2006-6-9 14:17
标题:
看看这样的单元测试,大家评价一下
void CTest_DB::TestPMDB_ClearFileData()
{
TEST_CASE_TRACE("Begin");
CString strSamplePath;
strSamplePath.Format("%s\\BaseTestCase\\SwitchView",m_strCurrentPath);
CString strTrace;
strTrace.Format("Create a ItemFolder %s",strSamplePath);
TEST_CASE_TRACE(strTrace);
CItemFolder * pItemFolder;
PMDB_CreateFolder(strSamplePath,pItemFolder);
if (pItemFolder)
{
CString strOldFileName(_T("OCR Pro 4.jpg"));
CItemFile* pOldItem = pItemFolder->GetItemFile(strOldFileName);
strTrace.Format("Get %s ItemFile info %s",strOldFileName);
TEST_CASE_TRACE(strTrace);
CPropertyInfo * pInfo = pOldItem->GetPropertyInfo(PROPERTYID_KEYWORD);
pInfo->SetProperData("Test PROPERTYID_KEYWORD");
strTrace.Format("Add KeyWord Test PROPERTYID_KEYWORD",strOldFileName);
TEST_CASE_TRACE(strTrace);
pInfo = pOldItem->GetPropertyInfo(PROPERTYID_AUTHOR);
pInfo->SetProperData("Test PROPERTYID_AUTHOR");
strTrace.Format("Add Author Test PROPERTYID_AUTHOR");
TEST_CASE_TRACE(strTrace);
pInfo = pOldItem->GetPropertyInfo(PROPERTYID_MEMORY);
pInfo->SetProperData("Test PROPERTYID_MEMORY");
strTrace.Format("Add Memory Test PROPERTYID_MEMORY");
TEST_CASE_TRACE(strTrace);
pOldItem->UpdateProperty(FALSE);
CString strFile;
strFile.Format("%s\\OCR Pro 4.jpg",strSamplePath);
strTrace.Format("Call PMDB_ClearFileData to Delete file info");
TEST_CASE_TRACE(strTrace);
PMDB_ClearFileData(strFile);
pOldItem->UpdateProperty(TRUE);
CString strData;
pInfo = pOldItem->GetPropertyInfo(PROPERTYID_KEYWORD);
strData = pInfo->GetProperData();
strTrace.Format("Get File %s,KeyWord = %s",strFile,strData);
TEST_CASE_TRACE(strTrace);
TEST_CASE_ASSERT(strData.CompareNoCase("Test PROPERTYID_KEYWORD") != 0);
pInfo = pOldItem->GetPropertyInfo(PROPERTYID_AUTHOR);
strData = pInfo->GetProperData();
strTrace.Format("Get File %s,AUTHOR = %s",strFile,strData);
TEST_CASE_TRACE(strTrace);
TEST_CASE_ASSERT(strData.CompareNoCase("Test PROPERTYID_AUTHOR") != 0);
pInfo = pOldItem->GetPropertyInfo(PROPERTYID_MEMORY);
strData = pInfo->GetProperData();
strTrace.Format("Get File %s,MEMORY = %s",strFile,strData);
TEST_CASE_TRACE(strTrace);
TEST_CASE_ASSERT(strData.CompareNoCase("Test PROPERTYID_MEMORY") != 0);
strTrace.Format("Free ItemFolder");
TEST_CASE_TRACE(strTrace);
delete pItemFolder;
pItemFolder = NULL;
}
TEST_CASE_TRACE("End");
}
作者:
wheetle
时间:
2006-6-9 21:01
没有注释
作者:
ricmy
时间:
2006-6-12 10:53
标题:
TEST_CASE_TRACE 中trace 出来的信息,基本上就是注释
TEST_CASE_TRACE 中trace 出来的信息,基本上就是注释
作者:
JPeanut
时间:
2006-6-12 12:28
单元测试脚本,,最重要的一点,,就是简单,,简洁..
这样的测试脚本,,估计本身需要测试..
脚本太长了,,不易交流
作者:
ricmy
时间:
2006-6-13 10:52
JPeanut 说的很好。
但是很多时候,一个函数是需要上下文的,而且测试这个函数还需要一定的环境
在上面的测试用例中有很多部分是用在准备测试环境
我来解释下上面的代码:
整个代码要测试的函数是 PMDB_ClearFileData(strFile);
这个函数的功能是从数据库中清除一个文件的信息
要测试这样的函数,你将需要有下面几步
1.为某个文件添加信息
2.调用测试函数( PMDB_ClearFileData(strFile);)
3.获取文件信息以确认文件信息是否为NULL
这样的测试用例有没有办法改进呢?
作者:
JPeanut
时间:
2006-6-13 14:04
准备条件一般写在在setup的,销毁用teardown
我是做java的,我的做法是自己写一个专门用于单元测试的jar提供开发人员编写测试脚本,
简化编写脚本的难度和工作量
实施下来,效果还可以,不过要抽出这样一个公共的jar,花了很多时间
作者:
ricmy
时间:
2006-6-13 17:41
恩,很不错的建议。
对于一些可以抽出来的部分放在setup 中是一个很好的做法
我们测试的时候是针对对象来测试的,而不是静态的代码,不同的对象创建的方法是不一样的。
比如上面的例子中,要创建一个文件的对象(CItemFile),你首先需要创建一个目录对象(CItemFolder),只有通过目录对象你才可以获得要测试的文件对象(CItemFile* pOldItem = pItemFolder->GetItemFile(strOldFileName);)
在本测试用例中,你会发现测试环境不光是代码的部分,同时还需要在硬盘上建立一定的物理测试环境。
其中【strSamplePath.Format("%s\\BaseTestCase\\SwitchView",m_strCurrentPath);】就是要求必须才系统中存在这样一个目录,并且目录下具备一个名叫【 CString strOldFileName(_T("OCR Pro 4.jpg"));】的文件
相信大家在编写测试用例的时候,也遇到这样的问题
作者:
zixuxuwu
时间:
2006-6-17 19:51
象这些你可以把它们都抽出来,单独作为一个函数,哪里需要的时候直接调用就可以了。这样就可以使你的测试代码中的代码简洁化,而且有问题的时候也好查清楚。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2