dependency-injection - Azure Service Fabric 有状态 Actor 中 IActorStateManager 的依赖注入(inject)

标签 dependency-injection actor azure-service-fabric

对于 Azure Service Fabric 有状态服务,可以注入(inject) IReliableStateManager如下:

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

这样你就可以模拟 IStateManagerMyService 的单元测试中.

对于有状态的 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/

相关文章:

c# - 用于获取控制台、Web 应用程序和 Service Fabric 微服务的配置参数的共享函数

java - 接口(interface)的Spring依赖注入(inject)

c# - 适合 Unity 的抽象工厂

c# - 在 Asp.Net Core 2 中使用 RoleManager 播种角色

scala - Scala 中的 Actors 能否处理消息失败? (O'Reilly 的 Programming Scala 中的示例)

asp.net-mvc - 多个用户创建用户时修改了 automapper 错误集合

performance - Actor 队列的最大大小?

用于静默安装 Azure Service Fabric SDK、运行时和工具的 Powershell 脚本

azure - 用于网站 Azure 服务结构的 SSL