Вы можете сделать простую попытку / поймать и выполнить Assert.Fail, если вы не перехватили ожидаемое исключение.Однако большинство структур модульного тестирования предоставляют автоматизированный способ тестирования исключений.
Microsoft MSTest имеет атрибут ExpectedException
, который можно применить к методу теста:
[ExpectedException(typeof(ArgumentNullException))]
[TestMethod]
public void DoSomething()
{ ... }
Если тестПриведенный выше метод NOT создает исключение ArgumentNullException, MSTest помечает тест как неудачный.
NUnit имеет более детализированный Assert.Throws
, который дает вам более конкретный контроль того, где именно в методе тестаожидается исключение.