Я реализую набор интерфейсов из сторонней библиотеки. Я не хочу поддерживать все функции, определенные в интерфейсах, поэтому я бросаю System.NotImplementedException
/System.NotSupportedException
для не поддерживаемых функций.
Должен ли я писать Unit-тесты для фрагмента кода, который генерирует исключение? Это нормально, если я пишу тесты?
Вполне нормально записывать модульные тесты, проверяющие NotSupportedExceptions
в реализациях частичного интерфейса. Сделав это, вы задокументируете, что это желаемое поведение реализации. Если кто-то воспользуется этим методом позже, он должен отрегулировать unit тест и должен -at least- подумать, если это новое желаемое поведение системы.
NotSupportedException
обычно подразумевает, что «эта реализация никогда не будет поддерживать эту функцию», поэтому UT для документирования этого факта представляется целесообразным.NotImplementedException
обычно означает «я еще не успел его реализовать», поэтому я бы не подумал, что вам понадобится UT, который ожидает это исключение.