使用FluentAssertions断言异步异常和paramName



我用的是FluentAssertions

对于一个同步测试,我可以这样写:
action.Should().Throw<ArgumentNullException>().And.ParamName.Should().Be("foo");
对于异步测试,我这样做:
await action.Should().ThrowAsync<ArgumentNullException>();

是否有一种方便的方法来断言ParamName,或者我必须通过在try-catch中包装来手动执行?

尝试捕获异常断言,您应该能够像使用同步代码一样继续断言。

//...
var error = await act.Should().ThrowAsync<ArgumentNullException>();
error.And.ParamName.Should().Be("foo");
//...

您可以使用WaitASync().Result使其完全流畅:

act.Should().ThrowAsync<ArgumentNullException>().WaitAsync(CancellationToken.None).Result.And.ParamName.Should().Be("foo");

相关内容

  • 没有找到相关文章

最新更新