如何在Azure.Messaging.EventHub库中单元测试HandleEventAsync(ProcessEve



我们正在从Microsoft.Azure.EventHubs.Processor v4.1.0迁移到Azure.Messaging.EventHubs.Processor v5.6.0库。我正在使用await messageHandler.HandleEventAsync(args);其中args是processevenargs类型。我想要进行单元测试的大多数业务逻辑都是基于EventData的,这是processevenargs的属性。事件数据具有systemProperties和其他属性的只读字典。EventData的公共构造函数不允许我们指定systemProperties或EventData主体以外的任何其他属性。

processevenargs和EventBody都没有可模拟的接口。在这种情况下,你能告诉我们如何使用processevenargs对代码进行单元测试吗?。.Net版本:.Net core app 3.1NuGet包版本:Azure.Messaging.EventHubs.Processor v5.6.0, Microsoft.NET.Test.Sdk v16.6.1

测试处理程序的推荐方法是直接调用它们,正如您正在尝试的那样。每个事件参数类型的构造函数都是公共的。(例如:ProcessEventArgs)

对于PartitionContext,EventData上的代理拥有的属性,以及其他没有公共构造函数的模型类型,EventHubsModelFactory允许您创建它们以用于模拟/测试场景。

本文提供了更多关于Azure SDK支持单元测试的原理和方法的信息。特别是对于事件中心,我们目前正在扩展我们的示例,以包括一组核心场景的直接示例,例如您的。

最新更新