test_entity.md 1.6 KB

实体测试

为方便实体的开发,框架中添加了实体测试的接口;

## 实体测试案例添加

在实体类声明定义的所在头文件中

  1. 引入测试所需的头文件:#include "SpTest.h"
  2. 实体类继承模板类ITestCaseSuite<T>
  3. 实体中ITestCaseSuite提供两个注册接口用于添加测试案例

    1. 实体中可以声明并实现若干个成员函数void {MemberFunctionName}(CSmartPointer<ITransactionContext> pTransactionContext),通过调用基类的AddTestCaseEntry的函数进行注册;
    2. 为了与外部实体交互,实体中常常需要定义TwoWay的上下文结构体,ITestCaseSuite提供MethodTestCaseT模板类,使用者需要继承该类并需要测试的上下文结构体,并实现void PreTest()ErrorCodeEnum PostTest()两个成员函数,前者给Req赋值,后者提供给使用者校验Ans返回的值.通过调用基类的AddTestMethodEntry函数进行注册.
    3. 为了实体能够测试其他无上下文参与的接口函数,基类还提供的ErrorCodeEnum AdditionalTest()函数供实际的实体类实现,在测试执行时,该函数也会一同被调用.

实体编译

编译实体并将编译后的实体库放到框架版本中

以测试模式启动框架

通过运行spexplorertest.vbs或者直接到*bin*目录下运行'./spshell --test',让框架以测试模式启动

如果通过'./spshell --test'启动,还可以在后面添加参数'--entity {实体名称}'单独启动想要测试的实体.

示例

更多的使用细节请参照实体:mod_sample工程下的mod_SampleEntity.h文件