[英]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.