2

我正在寻找一种方法来执行(出于单元测试目的)仅复杂状态机的一部分。为此,我正在评估 boost::statechart 框架。

我考虑的一种方法是设计一个分层状态机,其中每个状态都定义为嵌套状态机,应该单独测试。

考虑以下代码片段中的 FSM 定义:

struct Fsm: boost::statechart::state_machine< Fsm, StateA >
{
  ...
}

struct StatA : boost::simple_state< StateA, Fsm, StateA1 >
{
  ...
}

struct StateB : boost::simple_state< StateB, Fsm, StateB1 >  
{
  ....
}

struct StateA1 : boost::simple_state< StateA1, StateA >
{
  ....
}

struct StateA2 : boost::simple_state< StateA2, StateA >
{
  ....
}

struct StateB1 : boost::simple_state< StateB1, StateB >  
{
  ....
}

struct StateB2 : boost::simple_state< StateB2, StateB >  
{
  ....
}

是否可以对状态 B 内部定义的逻辑进行单元测试,即 B1 和 B2 内部状态,而不执行甚至编译为状态 A 定义的逻辑,包括其内部 A1 和 A2 状态?

提前致谢, AmirH

4

0 回答 0