簡體   English   中英

如何使用最小起訂量模擬 C# 中的 Azure 存儲帳戶?

[英]How to mock Azure Storage Account in C# using Moq?

我有一項服務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 class 中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

如果它是 class 使用你的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);
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM