4

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

显然,在 TestKit 中,系统参与者Sys没有该DistributedPubSub工具,并且在访问它时会引发 Null 指针异常。

这是当 Actor 被创建为 Sys 的子级时失败的代码:

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

有没有办法模拟它或创建一个演员探针来使用它Sys

4

1 回答 1

4

我认为问题在于,在使用任何 TestKit 类时,当您将 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

于 2016-12-22T00:39:04.260 回答