当前位置 : 主页 > 手机开发 > 其它 >

依赖注入 – 在Azure Service Fabric有状态actor中依赖注入IActorStateManager

来源:互联网 收集:自由互联 发布时间:2021-06-22
对于Azure Service Fabric状态服务,可以按如下方式注入IReliableStateManager: ServiceRuntime.RegisterServiceAsync("MyServiceType", context ={ IReliableStateManager stateManager = new ReliableStateManager(context); return new My
对于Azure Service Fabric状态服务,可以按如下方式注入IReliableStateManager:

ServiceRuntime.RegisterServiceAsync("MyServiceType", context =>
{
  IReliableStateManager stateManager = new ReliableStateManager(context);
  return new MyService(stateManager);
}

这样你就可以在MyService的单元测试中模拟IStateManager.

对于有状态的演员来说,这似乎是不可能的. IActorStateManager只有一个内部实现:Microsoft.ServiceFabric.Actors.Runtime.ActorStateManager.那么我如何对一个有状态的演员进行单元测试呢?

在我的actor方法的某个时刻,调用了IActorStateManager,但由于我不能注入这个依赖项,所以单元测试似乎是不可能的.

有没有办法解决这个问题还是有另一种解决方案?

不,IActorStateManager今天不能注射,但我们正在努力实现它.现在(不使用反射)你必须将你的状态操作包装在你可以注入的东西中,并将该调用调用到状态管理器中,然后你可以模拟它进行单元测试.
网友评论