我有以下的男演員,我想創建單元測試,以驗證以下行爲:使用Akka(與Java)如何驗證被測試的演員是否正在觀看另一個演員?
ListeningActor
正確註冊本身看listeningTo
演員。ListeningActor
當listeningTo
角色終止時正確殺死自己。
如何驗證這兩種行爲?
我正在使用Akka 2.0.2和Java。
感謝
public class ListeningActor extends UntypedActor {
private final ActorRef listeningTo;
public ListeningActor(final ActorRef listeningTo) {
this.listeningTo = listeningTo;
}
@Override
public void preStart() {
super.preStart();
context().watch(listeningTo); // <---- To verify
}
@Override
public void onReceive(final Object o) throws Exception {
if (o instanceof Terminated) {
Terminated terminated = (Terminated) o;
if (terminated.equals(listeningTo)) {
context().stop(self()); // <---- To verify
}
} else {
unhandled(o);
}
}
}
謝謝,那比我想象的要容易。它發現了一個bug - if條件應該寫成if(terminated.actor()。equals(listeningTo))' – vegemite4me