如何使用 FluentAssertions 4.x 版断言异常?

Posted

技术标签:

【中文标题】如何使用 FluentAssertions 4.x 版断言异常?【英文标题】:How to assert exceptions with FluentAssertions version 4.x? 【发布时间】:2020-02-21 15:06:00 【问题描述】:

我正在研究使用FluentAssertions-4.8.0 的更大解决方案。

由于我目前没有时间升级到最新版本(撰写本文时为 5.9.0),我想知道如何在上述版本中声明异常。

我知道它在 5.x 中是如何完成的,但我如何在 4.x 中断言异常?

[Fact]
public void Should_Throw_InvalidOperationException_If_...()

    // Arrange
    var resolver = new SomeResolver();
    var foo = new Foo();

    Action act = () => resolver.DoSomething(foo);

    // Act & Assert     
    act.Should().Throw<InvalidOperationException>.WithMessage("...");

【问题讨论】:

在此查看建议***.com/a/45037703/5233410 【参考方案1】:

回答我自己的问题。就这么简单:

[Fact]
public void Should_Throw_InvalidOperationException_If_...()

    // Arrange
    var resolver = new SomeResolver();
    var foo = new Foo();

    Action act = () => resolver.DoSomething(foo);

    // Act & Assert     
    act.ShouldThrow<InvalidOperationException>().WithMessage("...");

【讨论】:

以上是关于如何使用 FluentAssertions 4.x 版断言异常?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 FluentAssertions 检查对象是不是从另一个类继承?

如何使用 FluentAssertions 测试嵌套集合

如何在 FluentAssertions 中使用方法

如何在 FluentAssertions 中使用“Which”?

如何使用 FluentAssertions 在 XUnit 中测试 MediatR 处理程序

FluentAssertions:如何在每对元素上使用自定义比较来比较两个集合?