我正在尝试对使用SearchClient.SearchAsync()
方法的代码进行单元测试。我正在使用 AutoFixture.AutoMoq nuget 包。
这是我尝试过的:
mockSearchClient.Setup(msc => msc.SearchAsync<MyModel>(
It.IsAny<string>(),
It.IsAny<SearchOptions>(),
It.IsAny<CancellationToken>()
)).Returns(Task.FromResult(<<PROBLEM HERE>>));
问题出在参数.Returns(Task.FromResult(<<PROBLEM HERE>>))
部分。它期望从该.SearchAsync()
方法返回的具体对象。根据文档和自动完成,该方法返回Azure.Response
一个抽象类。所以,我不能更新它。实际上,该方法返回一个后代类Azure.ValueResponse
,它不是抽象的,而是 Azure SDK 内部的,因此也无法新建。
那么如何模拟 SearchClient.SearchAsync 呢?
PS 使用 Azure.Search.Documents,v11.1.1.0