Akka.net 如何使用 TestKit 测试 DistributedPubSub?

How to test DistributedPubSub with the TestKit in Akka.net?

我正在对使用集群工具的 actor 进行单元测试 DistributedPubSub。对于测试,我使用 Akka.net 的 TestKit。

显然,在TestKit中,系统actorSys没有DistributedPubSub工具,访问时会抛出空指针异常。

这是将 actor 创建为 Sys 的子级时失败的代码:

var mediador = DistributedPubSub.Get(Context.System).Mediator;

有没有办法模拟它或创建一个 actor 探针以将其与 Sys 一起使用?

我认为问题在于,当您将 HOCON 传递给基础 class 构造函数时,在使用任何 TestKit classes 时,您需要在 HOCON 中指定以下内容:

public class DistributedPubSubMediatorSpec : TestKit
{
    public DistributedPubSubMediatorSpec() : base(GetConfig()) { }

    public static Config GetConfig()
    {
        return ConfigurationFactory.ParseString("akka.actor.provider = \"Akka.Cluster.ClusterActorRefProvider, Akka.Cluster\"");
    } 
}

我在 Akka.NET 此处添加了一个拉取请求来测试此问题,规范通过了:https://github.com/akkadotnet/akka.net/pull/2424