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

时间:2016-12-20 19:03:21

标签: akka.net akka-testkit

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

显然,在TestKit中,系统角色Sys没有DistributedPubSub工具,并且在访问它时会抛出Null指针异常。

这是在将actor设为Sys的孩子时失败的代码:

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

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

1 个答案:

答案 0 :(得分:3)

我认为问题在于,在将HOCON传递给基类构造函数时,在使用任何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