对于 Azure Service Fabric 有状态服务,可以注入(inject) IReliableStateManager
如下:
ServiceRuntime.RegisterServiceAsync("MyServiceType", context =>
{
IReliableStateManager stateManager = new ReliableStateManager(context);
return new MyService(stateManager);
}
这样你就可以模拟
IStateManager
在 MyService
的单元测试中.对于有状态的 Actor 来说,这似乎是不可能的。
IActorStateManager
只有一个内部实现:Microsoft.ServiceFabric.Actors.Runtime.ActorStateManager
.那么如何对有状态的actor进行单元测试呢?在我的actor方法中的某个时刻,调用了
IActorStateManager
。但由于我无法注入(inject)这种依赖关系,单元测试似乎是不可能的。有什么办法可以解决这个问题还是有其他解决方案?
最佳答案
不,IActorStateManager 今天不可注入(inject),但我们正在努力做到这一点。现在(不使用反射)您必须将您的状态操作包装在您可以注入(inject)的东西中,并将该调用放入状态管理器中,然后您可以对其进行模拟以进行单元测试。
关于dependency-injection - Azure Service Fabric 有状态 Actor 中 IActorStateManager 的依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014482/