如何使用 FluentAssertions 组合多个断言

how to combine multiple assertion using FluentAssertions

我了解到,通过 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