Я бы не стал добавлять дополнительные операторы Try / Catch в модульные тесты. Во-первых, ожидаемое исключение в модульном тесте уже приведет к сбою теста. Это стандартное поведение NUnit. По сути, тестовый набор уже оборачивает каждый вызов ваших тестовых функций этим кодом. Кроме того, просто используя e.ToString () для отображения того, что произошло, я считаю, что вы теряете много информации. По умолчанию я считаю, что NUnit будет отображать не только тип исключения, но и стек вызовов, который, как я полагаю, вы не видите в своем методе.
Во-вторых, бывают случаи, когда это необходимо. Например, вы можете использовать атрибут [ExpectedException], чтобы фактически сказать, когда это происходит. Просто убедитесь, что при тестировании связанных с неисключениями утверждений (например, Утверждение списка> 0 и т. Д.) Вы добавляете хорошее описание в качестве аргумента для утверждения. Это полезно.
Все остальное вообще не нужно. Если ваши юнит-тесты настолько велики, что вы начинаете добавлять WriteLines с того, на каком «шаге» теста вы находитесь, это, как правило, признак того, что ваш тест действительно должен быть разбит на несколько меньших тестов. Другими словами, вы проводите не модульное тестирование, а интеграционный тест.