单元测试 - 控制器操作返回的断言对象

时间:2017-08-26 02:16:37

标签: c# unit-testing asp.net-core asp.net-core-webapi

如何在不更改控制器操作中的任何代码的情况下检查作为OkObjectResult的一部分返回的值是否为2,而不更改控制器操作中的任何代码?

这是我的控制器动作

h.each { |key, value| h[key] = value.sort_by! { |x, y| y } } # In this case, `y` is the second value in your arrays, which is the integer

我的单元测试看起来像这样

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

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

1 个答案:

答案 0 :(得分:5)

你应该可以这样做:

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