gpt4 book ai didi

c# - 如何模拟Azure.Storage.Blobs的BlobContainerClient()?

转载 作者:行者123 更新时间:2023-12-04 14:11:01 25 4
gpt4 key购买 nike

我需要一些为 Azure.Storage.Blobs 的 BlobContainerClient 创建 Mock 对象的示例以进行单元测试。如何为以下类(class)创建模拟?

 public sealed class BlobStorageProcessor
{
public BlobStorageProcessor(ILogger logger, BlobContainerClient containerClient)
{
this.logger = logger;
this.containerClient = containerClient;
}
}

最佳答案

微软现已在博客文章中介绍了这一点:https://devblogs.microsoft.com/azure-sdk/unit-testing-and-mocking/

基本上,您使用 Moq包来创建模拟对象并设置 BlobStorageProcessor 将使用的方法/属性。

public static BlobContainerClient GetBlobContainerClientMock()
{
var mock = new Mock<BlobContainerClient>();

mock
.Setup(i => i.AccountName)
.Returns("Test account name");

return mock.Object;
}

在单元测试中,您应该将 GetBlobContainerClientMock 方法的结果注入(inject)到 BlobStorageProcessor:

var blobStorageProcessor = new BlobStorageProcessor(
GetLoggerMock(),
GetBlobContainerClientMock()
);

GetLoggerMock 的实现方式与 GetBlobContainerClientMock 类似。在这里阅读更多信息:Moq Quickstart

关于c# - 如何模拟Azure.Storage.Blobs的BlobContainerClient()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64385008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com