通常、次のように、特定のメソッドで例外がスローされるかどうかをテストします。FluentAssertionsを使用します:
[Fact]
public void Exception_gets_thrown()
{
// Arrange
var foo = new Foo("validArgument");
// Act/Assert
foo.Invoking(f => f.Bar(null)) // null is an invalid argument
.ShouldThrow<ArgumentNullException>();
}
しかし、コンストラクターで例外がスローされた場合、どのようにテストするのでしょうか。私はちょうどこのようにしましたが、FluentAssertionsを介したより適切な方法はありますか?
[Fact]
public void Constructor_throws_Exception()
{
// Arrange
Action a = () => new Foo(null); // null is an invalid argument
// Act/Assert
a.ShouldThrow<ArgumentNullException>();
}