[英]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.