Sam*_*der 1 integration-testing azure azureservicebus
我们有一个侦听Azure服务总线队列的服务.我们有另一个服务来监听这个队列的死信队列.我们还有一系列测试,这些测试在部署后针对我们的Azure应用程序运行.
我们想扩展我们的自动化测试,以便处理死信的部分也经过测试,但不确定我们如何编写测试以确保消息到达死信队列,因为在正常情况下消息不会死信.
目前我们正在手动测试,但我觉得这不是一个长期的选择.
有任何想法吗?
根据Service Bus 文档,如果设置EnableDeadLetteringOnMessageExpiration为true,如果邮件过期,则会转到死信队列.所以,你可以这样做:
var desc = new QueueDescription(QueueName);
desc.EnableDeadLetteringOnMessageExpiration = true;
desc.DefaultMessageTimeToLive = TimeSpan.FromSeconds(1); // one second is the min value
Run Code Online (Sandbox Code Playgroud)
您可以通过等待> 1秒进行测试,以确保消息进入死信队列.
编辑:您也可以通过执行死信收到的消息receivedMessage.DeadLetter().这将自动将其置于死信队列中.
在Service Bus API中,Microsoft不提供直接向死信队列发送消息而不将消息放入主队列的功能.如果您尝试使用死信队列的路径创建MessageSender,它将失败并出现异常.
您需要使用假实现来模拟您的主队列接收器,该实现调用BrokeredMessage.DeadLetter()方法将消息传输到死信队列.
| 归档时间: |
|
| 查看次数: |
1636 次 |
| 最近记录: |