为什么这个FSM只能在一次状态转换中成功?

时间:2017-10-05 14:53:50

标签: c# akka.net

我有一个非常简单的FSM,可以成功完成一次转换,但不会超过这个。我不知道FSM中是否有错误,或者测试类中是否有错误。

这是一个完整的可重复的单元测试示例:

Assert.Equal() Failure  Expected: Done  Actual: Busy
  • Its_initial_state_is_Idle
    • 结果:测试通过
    • 输出:不适用
  • It_transitions_to_the_Busy_state_after_receiving_MessageA
    • 结果:测试通过
    • 输出:Busy => transitioning to Done
  • It_transitions_to_the_Done_state_after_receiving_MessageB_using_SetState
    • 结果:测试失败Assert.Equal() Failure Expected: Done Actual: Busy
    • 输出:Idle => transitioning to Busy
  • It_transitions_to_the_Done_state_after_receiving_MessageB_without_using_SetState
    • 结果:测试失败Busy => transitioning to Done
    • 输出:var vm = new Vue({ el: '#app', components: { 'my-component': { template: '#my-template', data: function() { return { list: [], }; }, ... }, }, vm.list = []

我已多次浏览文档,但在代码中找不到任何明显的错误。我错过了什么?

1 个答案:

答案 0 :(得分:2)

此处的问题似乎是,如果此FSM知道,您实际上没有定义为Done的状态。

您需要添加When(State.Done, e => { ... })处理程序,这将允许FSM转换为该行为并正确报告。