我正在寻找一种方法来执行(出于单元测试目的)仅复杂状态机的一部分。为此,我正在评估 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