0
如何检查作为该OkObjectResult的一部分返回的值是否具有2的计数而不更改控制器操作中的任何代码?单元测试 - 由控制器动作返回的断言对象
这里是我的控制器操作
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
}
我在我的单元测试中使用模拟和FluentAssertions。
没有意义的试验。所有这一切都是检查你的一个控制器的方法是否返回一个好结果。与有效请求无关。还有一些完全白痴出现并编辑你的代码,所以它返回一个非成功的状态代码,这是一个毫无意义的测试案例 - 你应该至少对同事有一定程度的信心。我更担心的是测试实际的业务逻辑而不是控制流程。 – Mardoxx