Как протестировать DistributedPubSub с помощью TestKit в Akka.net?

Я выполняю модульное тестирование актера, использующего инструмент Cluster DistributedPubSub. Для тестов я использую TestKit Akka.net.

Судя по всему, в TestKit системный актор Sys не имеет инструмента DistributedPubSub и при доступе к нему выдает исключение нулевого указателя.

Это код дает сбой, когда актор создается как дочерний элемент Sys:

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

Есть ли способ издеваться над ним или создать зонд актера, чтобы использовать его с Sys?


person Belén Morenate    schedule 20.12.2016    source источник


Ответы (1)


Я думаю, проблема в том, что вам нужно указать следующее в вашем HOCON, когда вы передаете его конструктору базового класса при работе с любым из классов TestKit:

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

person Aaronontheweb    schedule 22.12.2016