Наиболее идиоматический способ явной проверки отсутствия исключений - использование синтаксиса Assert.DoesNotThrow .
Как пример:
public class ClassUnderTest {
public void SampleMethod(FooBarObject fooBarObject) {
try {
fooBarObject.Name = "Never forget a towel";
fooBarObject.Number = 42;
}
catch (NullReferenceException){}
}
}
[Test]
public void Given_A_Class_Under_test_When_Calling_The_Sample_Method_It_Should_Not_Throw() {
var sut = new ClassUnderTest();
Assert.DoesNotThrow(() => sut.SampleMethod(null));
}
Предостережение заключается в том, что это отчасти всеохватывающее, поскольку вы только утверждаете, что не выдается никаких исключений, а не то, что исключение было обработано определенным способом типа обработанного исключения.
Только что увидев ответ CodeNotFound, я бы предложил перейти к его подходу защитного кодирования, это обычный шаблон для принятия, который действительно сохранит ваши методы как можно более чистыми. Проверяйте явно, проваливайте раньше и работайте с последствиями выше по цепочке вызовов, вместо того, чтобы просто проглотить исключение нулевой ссылки.