gpt4 book ai didi

c# - 如何使用 Moq 在 C# 中模拟 Azure 存储帐户?

转载 作者:行者123 更新时间:2023-12-03 03:31:29 27 4
gpt4 key购买 nike

我有一个服务IBlobService:

public interface IBlobService
{
public Task<BlobInfo> GetBlobAsync(string name);
    public Task<IEnumerable<string>> ListBlobsAsync();
    public Task UploadFileBlobAsync(string filePath, string fileName);
    public Task UploadContentBlobAsync(string content, string fileName);
    public Task DeleteBlobAsync(string blobName);
}

以下是我的 BlobService 类中 GetBlobAsync 方法的实现:

public async Task<BlobInfo> GetBlobAsync(string name)
{
var client = _blobContainerClient.GetBlobClient(name);
    var blobDownloadInfo = await client.DownloadContentAsync();
    return new BlobInfo(blobDownloadInfo.Value.Content, blobDownloadInfo.Value.Details.ContentType);
}

我正在尝试弄清楚如何使用 Moq 来实现我的测试。我对起订量比较陌生。有什么想法或指导吗?

我曾尝试查看此博客https://devblogs.microsoft.com/azure-sdk/unit-testing-and-mocking/

但我仍然发现自己陷入困境。我正在尝试找出实现测试的最佳方法。

最佳答案

如果您想使用IblobService 进行单元测试来测试 blobservice 或类?

如果它是使用您的 IBlobService 的类,那么您需要模拟 IBlobService

像这样


...
public void Test1() {
var blobServiceMocked = new Mock<IBlobService>();
blobServiceMocked.Setup(e => e.GetBlobAsync(It.IsAny<string>()).Returns(new BlobInfo(){ ... });
blobServiceMocked.Object;
...

// assert
_methodThatTakesIBlobservice(blobServiceMocked.Object);
...

关于c# - 如何使用 Moq 在 C# 中模拟 Azure 存储帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74658579/

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