Für einen Azure Service-Fabric Stateful Service ist es möglich, die IReliableStateManager
zu injizieren, wie folgt:Dependency Injection von IActorStateManager in Azure Service-Fabric Stateful Schauspieler
ServiceRuntime.RegisterServiceAsync("MyServiceType", context =>
{
IReliableStateManager stateManager = new ReliableStateManager(context);
return new MyService(stateManager);
}
Und auf diese Weise können Sie IStateManager
in Unit-Tests für verspotten MyService
.
Das gleiche scheint für einen statusstarken Schauspieler nicht möglich. IActorStateManager
hat nur eine interne Implementierung: Microsoft.ServiceFabric.Actors.Runtime.ActorStateManager
. Wie teste ich einen statusabhängigen Schauspieler?
Irgendwann in meinem Actor-Methoden wird ein Anruf an IActorStateManager
gemacht, aber da ich diese Abhängigkeit nicht injizieren kann, scheinen Unit-Tests unmöglich.
Gibt es einen Weg, um dies zu umgehen oder gibt es eine andere Lösung?
Gut zu hören, dass daran gearbeitet wird. Die Lösung, die Sie vorschlagen, ist genau das, was ich jetzt implementiert habe. –