我知道通过FluentAssertions
库,我们可以将多个断言组合在一个类中。只是想知道以下2个断言是否可以组合在一行中?
// Act
IActionResult actionResult = controller.Update();
// Assert
((ObjectResult)actionResult).StatusCode.Should().Be(200);
((ObjectResult)actionResult).Value.Should().BeEquivalentTo("updated");
使用内置断言,您可以将actionResult
与匿名对象进行比较。
IActionResult actionResult = new ObjectResult("updated")
{
StatusCode = 200
};
var expected = new
{
StatusCode = 200,
Value = "updated"
};
actionResult.Should().BeEquivalentTo(expected);
对于您的具体情况,您可以安装FluentAssertions.AspNetCore.Mvc
,它可以让您编写
actionResult.Should().BeObjectResult()
.WithStatusCode(200)
.WithValue("updated");
如果您使用的是Microsoft.AspNet.Mvc
而不是Microsoft.AspNetCore.Mvc
有
- https://www.nuget.org/packages/FluentAssertions.Mvc3/
- https://www.nuget.org/packages/FluentAssertions.Mvc4/
- https://www.nuget.org/packages/FluentAssertions.Mvc5/