【问题标题】:How to Mock BlobContainerClient() of Azure.Storage.Blobs?如何模拟 Azure.Storage.Blobs 的 BlobContainerClient()?
【发布时间】:2021-01-30 17:32:29
【问题描述】:
我需要一些为 Azure.Storage.Blobs 的 BlobContainerClient 创建 Mock 对象以进行单元测试的示例。如何为以下课程创建 Mock?
public sealed class BlobStorageProcessor
{
public BlobStorageProcessor(ILogger logger, BlobContainerClient containerClient)
{
this.logger = logger;
this.containerClient = containerClient;
}
}
【问题讨论】:
标签:
c#
azure
mocking
azure-blob-storage
【解决方案1】:
您可以使用Moq 库创建一个模拟对象并设置BlobStorageProcessor 将使用的方法/属性。
public static BlobContainerClient GetBlobContainerClientMock()
{
var mock = new Mock<BlobContainerClient>();
mock
.Setup(i => i.AccountName)
.Returns("Test account name");
return mock.Object;
}
在您的单元测试中,您应该将GetBlobContainerClientMock 方法的结果注入BlobStorageProcessor。
var blobStorageProcessor = new BlobStorageProcessor(
GetLoggerMock(),
GetBlobContainerClientMock()
);
GetLoggerMock 可以通过类似于GetBlobContainerClientMock 的方式实现。请在此处阅读更多信息:Moq Quickstart