gpt4 book ai didi

c# - 单元测试 - 断言 Controller 操作返回的对象

转载 作者:行者123 更新时间:2023-12-03 21:56:45 26 4
gpt4 key购买 nike

如何在不更改 Controller 操作中的任何代码的情况下检查作为 OkObjectResult 的一部分返回的值的计数是否为 2?

这是我的 Controller Action

public IActionResult GetUserNames()
{
var users = _repository.GetUsers();
return Ok(users.Select(u => u.Name));
}

我的单元测试是这样的

[Fact]
public void GetUserNames_ValidRequest_ShouldReturnOk()
{
_repository
.Setup(r => r.GetUsers())
.Return(new List<User>
{
new User { Name = "SomeRandomName" },
new User { Name = "SomeRandomName2" }
});

var result = _controller.GetUserNames();

result.Should().BeOfType<OkObjectResult>();
// Code to check if 2 names are returned
}

我在单元测试中使用 Mock 和 FluentAssertions。

最佳答案

你应该能够做这样的事情:

var objectResult = Assert.IsType<OkObjectResult>(result);
var model = Assert.IsAssignableFrom<List<string>>(objectResult.Value);
Assert.Equal(2, model.Count);

关于c# - 单元测试 - 断言 Controller 操作返回的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45891336/

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