# 实体测试 为方便实体的开发,框架中添加了实体测试的接口; ## 实体测试案例添加 在实体类声明定义的所在头文件中 1. 引入测试所需的头文件:`#include "SpTest.h"` 2. 实体类继承模板类`ITestCaseSuite` 3. 实体中`ITestCaseSuite`提供两个注册接口用于添加测试案例 1. 实体中可以声明并实现若干个成员函数`void {MemberFunctionName}(CSmartPointer 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文件