Ver Fonte

Z991239-385 #comment 添加实体测试的开发引导

gifur há 5 anos atrás
pai
commit
8892611150
2 ficheiros alterados com 32 adições e 6 exclusões
  1. 5 1
      RVCComm/CMakeLists.txt
  2. 27 5
      docs/test_case/test_entity.md

+ 5 - 1
RVCComm/CMakeLists.txt

@@ -54,4 +54,8 @@ install(TARGETS ${MODULE_NAME}
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
-	COMPONENT libraries)
+	COMPONENT libraries)
+
+if (WITH_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
+    install(FILES ${CMAKE_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT symbols)
+endif()

+ 27 - 5
docs/test_case/test_entity.md

@@ -1,8 +1,30 @@
 # 实体测试
 
-## 功能性测试
+为方便实体的开发,框架中添加了实体测试的接口;
+
+## 实体测试案例添加
+
+在实体类声明定义的所在头文件中
+
+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文件
 
-1. 实体库文件不存在;
-2. 实体库依赖的库文件不存在;
-3. 实体`OnPreStart`接口启动失败;
-4.