我不能通过调用它的构造函数然后测试它的方法来测试一个可靠的服务/演员。var testService = new SomeService();
引发 NullReferenceException。那么我可以用已部署的服务做什么..
我知道部署的 SF Reliable Services/Actor 不是标准的 .NET 类,对部署的 S/A 进行单元测试可能是一个奇怪的想法。
无论如何,现在我正在尝试尝试一下。
例如。我刚刚部署了一个服务,而不是在测试中我创建了一个代理对象并将项目添加到服务的输入队列中。然后我需要断言输入队列计数 = 1。如果我刚刚部署了一个服务并且没有其他客户端/服务/参与者使用它的输入队列,它就可以工作。但是下次这个测试将失败,这就是问题所在。我需要让服务停止与其他消费者一起操作,放下它的队列,然后测试它。为此,我可以创建一些 TestMode 属性和一些方法,如 PropareoForTests/TestingCompleted 并在测试前后从测试客户端调用它们。
这样做是不是一个坏主意。也许有一些关于单元测试 SF 的指南?谢谢。
更新:
在调查Service Fabric Web 参考应用程序示例时,我发现了这个 TODO 字符串:
/// TODO: Temporary property-injection for an IServiceProxyWrapper until constructor injection is available.
这是否意味着顺丰服务将改进其对 DI 的支持?演员呢?