我正确地嘲笑了下面的方法,因为调用它时它不返回结果: 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,但我使用 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”变量。希望这是有道理的。