Tôi đã phát hiện ra rằng đây dường như là hai cách thử nghiệm chính cho các trường hợp ngoại lệ:
Assert.Throws<Exception>(()=>MethodThatThrows());
[ExpectedException(typeof(Exception))]
Cái nào trong số này sẽ là tốt nhất? Có ai cung cấp lợi thế hơn người khác? Hay đơn giản chỉ là vấn đề sở thích cá nhân?
ExpectedExceptionthuộc tính, vì vậy đối với phiên bản 3+ chỉ có Assert.Throwsbiến thể là phù hợp.
Assert.That(() => MethodThatThrows(), Throws.Exception)