使用 Moq 模拟 Blobclient.DownloadContentAsync()

问题描述 投票:0回答:1

我正确地嘲笑了下面的方法,因为调用它时它不返回结果: var blobContent = new BinaryData("this is test data"); var downloadResult = BlobsModelFactory.BlobDownloadResult(内容: blobContent); var response = Response.FromValue(downloadResult, blobContainerClientResponseMock.Object);

        mockBlobClientTrue.Setup(client => client.DownloadContentAsync(default))
          .ReturnsAsync(response);

我尝试了不同的方法,但没有结果。

moq
1个回答
0
投票

出于安全考虑,我目前避免使用 Moq,但我使用 NSubstitute 有以下解决方案。我认为你可以从这里对其进行逆向工程:

首先使用 BlobsModelFactory 构建结果:

var t = BlobsModelFactory.BlobDownloadResult(content: BinaryData.FromString("data here"));

然后将其包装在 Azure.Response 中:

var val = Response.FromValue(t, Substitute.For<Response>());

最后是异步返回:

var returnVal =  Task.FromResult(val);

然后您需要设置您的模拟以返回“returnVal”变量。希望这是有道理的。

© www.soinside.com 2019 - 2024. All rights reserved.