【问题标题】: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

    【讨论】:

      猜你喜欢
      • 2021-02-01
      • 2020-09-28
      • 2021-12-10
      • 2021-05-08
      • 2023-04-04
      • 1970-01-01
      • 2021-04-11
      • 2020-11-09
      • 2011-11-28
      相关资源
      最近更新 更多