我应该如何使用ScalaTest测试AKKA FSM超时

时间:2012-07-17 02:40:10

标签: scala akka scalatest

是否有一种惯用的方法来测试状态超时。我的actor采用一种类型来指定在不同状态下花费的持续时间。有点像:

startWith(Off,_)    

when(Off, stateTimeout = Durations.OffDuration ) => Case Event(,_) goto(On) 

when(On, stateTimeout = Durations.OnDuration ) => Case Event(TurnOn,_) goto(Off)

我想测试一下Off确实转到了,反之亦然。

我可以这样做:

val durations = new Durations(1 NanoSecond,1 Second)    
// get actor from system

thread.sleep(OffDuration) // 1 nanosecond of wait
assert(actor.StateName == On)

但是睡觉的呼唤感觉不对,我也选择了“神奇”的持续时间值而与时间赛跑“

0 个答案:

没有答案