[英]how to fake / unit test Azure Storage Queue?
我正在尝试找到一种方法来测试我拥有的一些代码,这些代码将查询 azure 存储队列。 目前,我被要求在 memory 队列 class 中创建自己的本地,该队列模拟上游 Azure 队列。 此时,我正在尝试查看是否可以在假队列中创建示例消息,以便我的 class 的被调用者有一些数据可以使用。
所以我正在尝试做这样的事情:
using Azure.Storage.Queues.Models;
namespace Widgets.Tests.Queues
{
public class InMemoryAzureMessageQueue : IAzureQueueClient
{
public string DequeueMessage(QueueMessage message)
{
throw new System.NotImplementedException();
}
public QueueMessage[] GetMessages()
{
//pseudocode
QueueMessage qm = new QueueMessage();
QueueMessage[] listqm = new QueueMessage[];
qm.messageID = xxx;
qm.messageBody = "hello";
listqm.add(qm);
return listqm;
}
public bool HasMesssages()
{
return true;
}
}
}
当我尝试创建“qm”时,我收到以下错误消息:“QueueMessage”不包含采用 0 arguments 的构造函数
到目前为止我尝试过的:
我在单击 QueueMessage 时尝试“转到定义”,只是为了查看构造函数的外观。 但是当我这样做时,我得到一个错误,说没有找到定义。
class 的描述是这样说的:
The object returned in the QueueMessageList array when calling Get Messages on a Queue.
也许我不能只创建这样的消息?
我在 .NET 和 Azure 的所有事情上真的很绿色。 任何提示将不胜感激。
QueueMessage
class 不包含可访问的构造函数。 但是,您可以使用为QueuesModelFactory
这些消息设计的 QueuesModelFactory 构建消息:
public QueueMessage[] GetMessages()
{
QueueMessage qm = QueuesModelFactory.QueueMessage(
messageId: "xxx",
popReceipt: "",
messageText: "hello",
dequeueCount: 0);
QueueMessage[] listqm = new QueueMessage[1];
listqm[0] = qm;
return listqm;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.