无法从 XUnit Test 中的查询处理程序返回正确的响应

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

我有以下控制器:

[HttpGet("")]
[ProducesResponseType(typeof(string), StatusCodes.Status200OK)]
public async Task<IActionResult> FetchCurrentCompany()
{
    var data = await _mediator.Send(new CompanyQuery());

    return Ok(data);
}

哪位发送询问

public class CompanyQuery : QueryBase<string>
{
   public CompanyQuery() { }
}

有一个处理程序

internal class CompanyQueryHandler : IQueryHandler<CompanyQuery, string>
    {
        public CompanyQueryHandler()
        {
            
        }

        public async Task<string> Handle(CompanyQuery query, CancellationToken cancellationToken)
        {
            return JsonConvert.SerializeObject("Hello Company API");
        }
    }

我正在尝试编写一个测试来调用 API 并返回“Hello Company API”

当我调试测试时,它没有命中

return JsonConvert.SerializeObject("Hello Company API");

相反,它只是说测试过去了,结果实际上并没有“Hello Company API”

下面是测试

private readonly Mock<IMediator> _mockMediatR;

public ApiControllerTest()
{
    _mockMediatR = new();
}

[Theory]
public async Task Get_Company_Details_Should_Return_Company_Information()
{
    // Arrange
    var controller = new CompanyController(_mockMediatR.Object);

    // Act
    var result = await controller.FetchCurrentCompany();

    // Assert
    Assert.NotNull(result);
}

有人可以阐明我做错了什么,以便我可以从处理程序返回预期的消息吗?

c# moq mediatr
© www.soinside.com 2019 - 2024. All rights reserved.