我有一个服务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/