:より詳細なTestProbeクラス、たとえばhere
を参照してください。 TestKitはTestProbeと呼ばれる特殊なクラスがあります。 TestProbeにはTestActorのすべての機能があり、その後はいくつかの機能があります。追加ボーナスとして、多くのプローブを並行して実行することができます。
[Test]
public void FriendsPresenceActor_should_alert_other_users_when_friend_comes_online()
{
var presence = ActorOfAsTestActorRef<FriendsPresenceActor>("presence");
// create probes in place of users
var user1 = CreateTestProbe("user1");
var user2 = CreateTestProbe("user2");
var user3 = CreateTestProbe("user3");
// make those probes send a message I want
user1.Send(presence, new RegisterUser(user1));
user2.Send(presence, new RegisterUser(user2));
user3.Send(presence, new RegisterUser(user3));
// pre-check we have the right number of subscribers
Assert.AreEqual(3, presence.UnderlyingActor.Subscribers.Count);
// trigger by having a probe send msg that I want
user1.Send(presence, new UserOnline(user1));
// other user probes should have been informed of new friend presence
user1.ExpectNoMsg();
user2.ExpectMsgFrom<UserOnline>(presence, online => online.User.Equals(user1));
user3.ExpectMsgFrom<UserOnline>(presence, online => online.User.Equals(user1));
}
P.S. AutoPilotにご注意ください。これはAkka.Netでも利用可能です