gpt4 book ai didi

c# - 在 Azure.Search.Documents v11.2.0 中测试 SearchResults 类的方法

转载 作者:行者123 更新时间:2023-12-05 04:52:31 27 4
gpt4 key购买 nike

我正在尝试找到一种对SearchResults<T> Class中的搜索结果进行单元测试的方法。具有不同的参数。

DocumentSearchResult<T> Class相比位于上一个包 Microsoft.Azure.Search.Data v10.1.0 中, SearchResults<T> Class没有任何构造函数,只有属性和方法。

DocumentSearchResult<T> Class https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.search.models.documentsearchresult-1?view=azure-dotnet

SearchResults<T> Class https://learn.microsoft.com/en-us/dotnet/api/azure.search.documents.models.searchresults-1?view=azure-dotnet

我似乎无法在网上找到任何相关文档,因为它相对较新,但非常欢迎任何想法或建议。

谢谢。

最佳答案

我们所有适用于 .NET 的 Azure SDK 匹配包名称 Azure.*(例如 Azure.Search.Documents),都可以使用与所示相同的原理进行模拟 here 。对于纯响应对象,如 SearchResults<T> ,我们创建 model factories以便您可以创建它们进行测试。一般来说,除了测试之外,创建它们没有其他预期目的。

使用起订量,例如:

// Arrange
var mockResponse = new Mock<Response>();
var mockResults = SearchModelFactory.SearchResults<Model>(new[]
{
SearchModelFactory.SearchResult<Model>(new Model { Name = "a" }, 1.0),
SearchModelFactory.SearchResult<Model>(new Model { Name = "b" }, 0.9),
}, 2, rawResponse: response.Object);

var mockClient = new Mock<SearchClient>();
mockClient.Setup(m => m.Search<Model>(It.IsAny<string>(), It.IsAny<SearchOptions>(), default))
.Returns(Response.FromValue(mockResults, mockResponse.Object));

// Act
var response = mockClient.Object.Search<Model>("anything");

// Assert
Assert.AreEqual(2, response.Value.TotalCount);

参见more mocking samples寻求其他想法。

关于c# - 在 Azure.Search.Documents v11.2.0 中测试 SearchResults<T> 类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66455949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com