我用的是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");