C# 如何伪造/单元测试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

我试图找到一种方法来测试我拥有的一些查询azure存储队列的代码。现在,我被要求创建自己的本地内存队列类,模拟上游Azure队列。 此时,我正在尝试查看是否可以在假队列中创建一个示例消息,以便类的被调用方可以处理一些数据

所以我试着这样做:

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后,我发现了这个页面,它显示了如何模拟创建队列消息: