C# 如何伪造/单元测试Azure存储队列?
我试图找到一种方法来测试我拥有的一些查询azure存储队列的代码。现在,我被要求创建自己的本地内存队列类,模拟上游Azure队列。 此时,我正在尝试查看是否可以在假队列中创建一个示例消息,以便类的被调用方可以处理一些数据 所以我试着这样做:C# 如何伪造/单元测试Azure存储队列?,c#,azure,unit-testing,azure-storage,azure-storage-queues,C#,Azure,Unit Testing,Azure Storage,Azure Storage Queues,我试图找到一种方法来测试我拥有的一些查询azure存储队列的代码。现在,我被要求创建自己的本地内存队列类,模拟上游Azure队列。 此时,我正在尝试查看是否可以在假队列中创建一个示例消息,以便类的被调用方可以处理一些数据 所以我试着这样做: using Azure.Storage.Queues.Models; namespace Widgets.Tests.Queues { public class InMemoryAzureMessageQueue : IAzureQueueClien
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个参数的构造函数
到目前为止我所尝试的:
我试图在单击QueueMessage时“转到定义”,只是想看看构造函数是什么样子。但是当我这样做的时候,我得到一个错误,说没有找到定义
课程的描述是这样的:
The object returned in the QueueMessageList array when calling Get Messages on a Queue.
也许我不能就这样创造一个信息
我对.NET和所有的东西都很熟悉。
任何提示都将不胜感激。该类不包含可访问的构造函数。但是,您可以使用构建消息,该消息是为模拟这些消息而设计的:
public QueueMessage[] GetMessages()
{
QueueMessage qm = QueuesModelFactory.QueueMessage(
messageId: "xxx",
popReceipt: "",
messageText: "hello",
dequeueCount: 0);
QueueMessage[] listqm = new QueueMessage[0];
listqm[0] = qm;
return listqm;
}
你有没有看过关于这个错误的文档/谷歌搜索过?这是一个很容易解决的小错误。这基本上意味着您需要将所需的参数传递给QueueMessage的构造函数。您使用的是像VisualStudio这样的IDE吗?如果在
QueueMessage
上单击ctrl
+,IDE可能会将您带到类型的定义,在那里您可以看到构造函数及其所需的参数。你也可以通过谷歌QueueMessage
查看文档中所需的参数。是的,实际上我已经尝试过“转到定义”,但它说找不到QueueMessage的定义。我已经确认在代码顶部添加了正确的库。。。我将更新我的问题以包含这些详细信息。您可能需要插件来定义您自己项目之外的代码。在谷歌搜索QueueMessage后,我发现了这个页面,它显示了如何模拟创建队列消息: