【发布时间】:2022-07-23 15:41:29
【问题描述】:
我们正在为我们的 .Net core 3.1 Web API 尝试使用 Fluent Assertions 并使用 XUnit 进行测试驱动开发。
这是我的控制器返回的内容。
{
"usersResult": [
{
"UserId": "1",
"UserName": "Foo"
},
{
"UserId": "2",
"UserName": "Boo"
}
]
}
在我的测试方法中,我想检查它是否返回一个对象,即我想在 userResult 类型上断言,当我为“userResult”调试它的显示匿名类型时 ,所以我很困惑我应该在什么类型中指定:Should().BeOfType(??)
[HttpGet]
public async Task<IActionResult> GetUsers()
{
Users us = new Users();
var us = await _service.GetUsers();
return Ok(new { usersResult = us });
}
public class Users
{
public string UserId{ get; set; }
public string UserName{ get; set; }
}
// 测试方法:
[Fact]
public async Task GetUsers_OnSuccess_ReturnsListOfUsers()
{
var sut = new UserController();
var result = await sut.GetUsers();
result.Should().BeOfType<OkObjectResult>();
var objectResult = (OkObjectResult)result;
objectResult.Value.Should().BeOfType<**WHAT_To_Specify**>();
}
【问题讨论】:
-
简短的回答是:你不能。
-
看起来与github issue 上的 cmets 相似
标签: c# asp.net-core tdd xunit fluent-assertions