123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /// 状态机的单元测试
- #ifndef RuFsmUnitTest_h
- #define RuFsmUnitTest_h
- #include "RUDefine.h"
- #include "RUStateDelegate.h"
- NS_RU_BEGIN
- class FsmUnitTest
- {
- public:
- FsmUnitTest() = default;
- ~FsmUnitTest() = default;
-
- static void runTest();
-
- /*############### 单层状态机测试用例 ##################*/
- /*单层状态机
- 1.状态机正常初始化(stateMachineLoader类测试)
- 2.打印初始化后的状态机结构信息
- */
- static void fsmTest1();
-
- /*单层状态机
- 1.状态机的正常运行
- 2.状态机响应事件后的流程测试
- */
- static void fsmTest2();
-
- /*单层状态机
- 1.指定状态机的初始状态并运行状态机
- */
- static void fsmTest3();
-
- /*单层状态机
- 1.状态机未运行不能响应事件
- 2.状态机只能响应运行状态下可响应的事件
- */
- static void fsmTest4();
-
- /*单层状态机
- 1.测试stateDelegate
- */
- static void fsmTest5();
-
- /*单层状态机
- 1.测试事件带参数
- */
- static void fsmTest6();
-
- /*单层状态机
- 1.测试状态自动跳转事件
- */
- static void fsmTest7();
-
- /*############### 多层状态机测试用例 ##################*/
- /*分层状态机
- 1.状态机正常初始化(stateMachineLoader类测试)
- 2.打印初始化后的状态机结构信息
- */
- static void hfsmTest1();
-
- /*分层状态机
- 1.三层状态机正常初始化(stateMachineLoader类测试)
- 2.打印初始化后的状态机结构信息
- */
- static void hfsmTest2();
-
- /*分层状态机 (eg:家装1旧1新)
- 1.状态机的正常运行
- 2.状态机响应事件(大状态间跳转)流程测试
- */
- static void hfsmTest3();
-
- /*分层状态机
- 1.指定状态机的运行状态
- 2.状态机响应事件(分层状态内跳转)流程测试
- */
- static void hfsmTest4();
- /*分层状态机
- 1.大状态机和分层小状态机都能响应同一个事件时,优先分层小状态机响应
- */
- static void hfsmTest5();
- };
- class TestStateDelegate: public StateDelegate
- {
- public:
- virtual void beforeSwitch(State* state, const std::vector<StateActInfo>& stateActInfo, StateActInfo evt, std::function<void(void)> actFinishCb = nullptr);
-
- protected:
- virtual void execStateAct(State* state, const StateActInfo* stateActInfo, const std::map<string, string>& eventParams, const std::function<void(void)>& actFinishCb = nullptr) override;
- };
- NS_RU_END
- #endif /* RuFsmUnitTest_h */
|