测试代理消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试代理消息相关的知识,希望对你有一定的参考价值。
现在我正在编写关于天蓝色服务总线触发器功能的单元测试。非常需要模拟以某种方式传递到函数中的BrokeredMessage
对象。功能声明如下:
public static void Run(
[ServiceBusTrigger("saas01.queue.dbmigration", AccessRights.Manage, Connection = "connection")]BrokeredMessage message)
不幸的是,我找不到任何适用的方式来嘲笑它。它几乎没有嘲笑du这个类是密封的,我不能事件创建它周围的包装。你有一些想法吗?谢谢你的帮助
,
答案
一种解决方案是创建一个可以测试的BrokeredMessage包装器,就像here一样。 Here's也是ServiceBus团队的一篇MSDN帖子,它也谈到了使用包装器。
请注意,Azure Functions V2使用Message
class,它是公共的而不是密封的。
[FunctionName("ServiceBusFunc")]
public static void Run([ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBus")]BrokeredMessage myQueueItem, TraceWriter log)
{
var message = new MyBrokeredMessage(myQueueItem);
BusinessLogic(message, log);
}
public static void BusinessLogic(MyBrokeredMessage myMessage, TraceWriter log)
{
var stream = myMessage.GetBody<Stream>();
var reader = new StreamReader(stream);
log.Info($"C# ServiceBus queue trigger function processed message: '{reader.ReadToEnd() }'");
}
public class MyBrokeredMessage
{
private BrokeredMessage _msg;
public MyBrokeredMessage(BrokeredMessage msg) => _msg = msg;
public T GetBody<T>()
{
return _msg.GetBody<T>();
}
}
以上是关于测试代理消息的主要内容,如果未能解决你的问题,请参考以下文章
Forge Viewer - 如何在场景中访问(或获取渲染/片段代理)克隆的网格?
SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段