1

状態のタイムアウトをテストする慣用的な方法はありますか。私のアクターは、さまざまな状態で費やされた期間を指定する型を取ります。次のようなもの:

startWith(Off,_)    

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

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

Off が本当に On に移行するか、またはその逆かをテストしたいと思います。

私は次のようなことができます:

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

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

しかし、睡眠への呼び出しは間違っているように感じ、「魔法の」持続時間の値を選択することで時間と競争しています。」

4

0 に答える 0