Service Fabric 单元测试从 Settings.xml 和 App.Config 读取配置信息的 Reliable Actor 方法

Service Fabric Unit Tesitng a Reliable Actor Method which reads config info from Settings.xml and App.Config

我目前正在从事一个 Service Fabric 项目,我们在其中一个可靠的参与者中调用 SOAP 服务。对于这些调用,我们从 Actor 的 Settings.xml 中读取了几个参数,并且还从 App.config 文件中读取了 SOAP 端点地址和绑定信息(实际上后者是由生成的服务代理隐式完成的 class 用于 SOAP 服务)。

现在我正在尝试使用 xUnit + ServiceFabric.Mocks 进行单元测试。为了测试特定于 Actor 的方法,我经历了: 1) 创建一个 "MockCodePackageActivationContext" 2) 使用步骤 1 中的激活上下文实例创建 "StatefulServiceContext"。 3) 使用以下代码实例化 Actor

MyActor target = new MyActor(
                new ActorService(
                    context: serviceContext,
                    actorTypeInfo: ActorTypeInformation.Get(typeof(MyActor)),
                    stateManagerFactory: (actorBase, stateProvider) => new MockActorStateManager()
                ),
                new ActorId(Guid.NewGuid())
            );

4) 我调用 target.MyMethod() 由于无法从 Settings.xml 或 App.config 文件

读取配置信息而中断

我做了一个测试,其中 target.MyMethod_Test() 没有从配置中读取任何内容并且它是成功的。

有谁遇到过类似的事情吗?你是怎么解决的?

您可以创建一个单独的 class 来提供配置数据。为其创建一个接口,然后将其注入 Program Main 中的 Actor 构造函数。 (例如,将服务上下文传递到新的 class。)

同时创建接口的模拟实现并将其传递给 Actor 以进行测试。