测试者可以在测试用例类中包含测试所需的中间变量、方法等,但不要使用全局变量或全局资源(因为测试案例是运行在线程环境中)。对于无法使用 Visual C++ 实现的待测试代码(如 Visual Basic代码),测试者可以先将待测试代码包装成 Visual C++可以调用的 ActiveX Automation 组件或动态连接库,再于 OneStep()方法中编码调用。
一个简单的测试包的例子如下:
MyCase1.h
#include "stdafx.h"
#include "StressCase.h"
class MyCase1 : public StressCase
{
public:
DECLARE_DYNCREATE(MyCase1)
bool OneStep(CString& strErrorMessage);
};
MyCase1.cpp
#include "stdafx.h"
#include "StressCase.h"
#include "MyCase1.h"
IMPLEMENT_DYNCREATE(MyCase1, StressCase)
bool MyCase1::OneStep(CString& strErrorMessage)
{
// do something...
return true;
}
注意:定义测试用例类必须分成头文件(*.h)和实现文件(*.cpp),在头文件中的类定义体内必须包含语句
DECLARE_DYNCREATE(ClassName)
在实现文件中必须包含语句
IMPLEMENT_DYNCREATE(ClassName, StressCase)
上面的例子仅实现了OneStep()方法。需要时,也可以实现OnInitialize() 和 OnUninitialize()方法。测试者在测试用例代码内可以通过 StressCase类的成员变量获得与自身相关的各种信息,包括案例名称、线程号、测试次数等,也可以在测试失败时通过参数strErrorMessage返回错误信息(该错误信息将显示在测试界面中),或者调用StressCase 类的 LogEvent() 方法记录系统日志(仅在 Windows NT/2000下有效,日志信息记录在操作系统的应用程序日志中,可以使用事件查看器阅读)。
有关 StressCase类的各成员变量及方法的使用的详细信息,请参见头文件StressCase.h 中的代码和注释。
3. 将上面实现的头文件和实现文件(如MyCase1.h和MyCase1.cpp)加入VisualC++工程中。
4. 必要的话,重复2-3,实现其他测试用例类。
5. 修改 TestSuite.cpp 的内容,定义测试包。TestSuite.cpp文件的格式及配置方法如下:
///////////////////////////////////////////////////////////////////////////
//
// TestSuite.cpp - 测试包定义
//
///////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "StressCase.h"
//

