【发布时间】:2017-07-12 08:16:53
【问题描述】:
我正在为我们的应用程序编写一个事件发布者,它在内部使用Azure C# EventHubClient。
我想对我的事件正确转换为 EventData 对象(属性 + 正文)以及其他一些功能进行单元测试。长话短说,我需要一些方法来为 EventHubClient 创建一个模拟。不幸的是,似乎没有一种简单的方法可以做到这一点:
- EventHubClient 未实现任何相关接口,因此使用 Moq 或 NSubstitute 之类的东西来创建模拟将不起作用。
- EventHubClient 是一个具有内部构造函数的抽象类,因此我无法扩展它并创建自定义模拟。
理论上,我可以围绕我想使用的方法创建一个包装接口和类,但这意味着需要维护更多代码。有人知道使用 EventHubClient 进行单元测试的更好方法吗?
【问题讨论】:
-
看看他们是如何测试它的,看看它是否对这个主题有所启发github.com/Azure/azure-event-hubs-dotnet/tree/dev/test/…
-
@Nkosi 感谢您的提示。他们正在从环境变量加载真实事件中心的连接字符串,所以它更像是集成测试......我想这对他们的用例很有意义。
-
@Nkosi 终于找到了答案in the repo:单元测试友好应该快来了。
-
我不认为微软“很快”会大步向前——到目前为止,他们只是拒绝了 PR。
标签: c# unit-testing azure-eventhub