2016-12-20 2 views
3

Ich bin Unit-Tests ein Akteur, der das Cluster-Tool DistributedPubSub verwendet. Für die Tests verwende ich das TestKit von Akka.net.Wie testet man DistributedPubSub mit dem TestKit in Akka.net?

Offenbar hat der Systemaktor Sys im TestKit nicht das Tool DistributedPubSub, und beim Zugriff wird eine Nullzeigerausnahme ausgelöst.

Dies ist der Code versagt, wenn der Schauspieler als Kind von Sys erstellt:

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

Gibt es eine Möglichkeit, es zu verspotten oder einen Schauspieler Sonde schafft es mit Sys zu benutzen?

Antwort

2

Ich denke, das Problem hier ist, dass Sie die folgenden in Ihrem HOCON angeben müssen, wenn Sie es auf die Basisklasse Konstruktor übergeben, wenn sie mit einem der Testkit Klassen arbeiten:

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

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

Ich habe einen Zug Anfrage für dieses Problem auf Akka.NET hier zu testen und die Spezifikation besteht: https://github.com/akkadotnet/akka.net/pull/2424