【问题标题】:How do I mock the NestClient DebugInformation in C#?如何在 C# 中模拟 NestClient DebugInformation?
【发布时间】:2021-06-22 11:35:17
【问题描述】:

我想最小化来自ElasticClient 的响应以在DebugInformation 属性中显示错误或一些信息。

我有以下几点:

ISearchResponse<person> personResponse = new SearchResponse<person>();
personResponse.ApiCall = new ApiCallDetails
{
    Success = false,
};
personResponse.DebugInformation = "Something happened"; //This is not allowed

_elasticClient.Setup(s =>
    s.Search<person>(
        It.IsAny<Func<SearchDescriptor<person>, ISearchRequest>>()))
    .Returns(personResponse);

我无法分配给 DebugInformation,因为它是只读的。有什么想法吗?

【问题讨论】:

    标签: c# elasticsearch nunit moq


    【解决方案1】:

    有人建议我改为 Moq 响应的接口

    所以我就这样嘲讽了

    Mock<ISearchResponse<person>> mockResponse = new Mock<ISearchResponse<person>>();
    mockResponse.Setup(s => s.ApiCall.DebugInformation).Returns("Something");
    mockResponse.Setup(s => s.ApiCall.Success).Returns(false);
    mockResponse.Setup(s => s.Hits).Returns(new List<IHit<person>>());
    
    
    _elasticClient.Setup(s =>
        s.Search<person>(
            It.IsAny<Func<SearchDescriptor<person>, ISearchRequest>>()))
        .Returns(mockResponse.Object);
    

    ...这行得通!

    【讨论】:

      猜你喜欢
      • 2010-12-23
      • 2012-10-09
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2011-08-02
      • 2018-03-08
      • 2015-12-11
      相关资源
      最近更新 更多