Это хорошая практика, чтобы написать UnitTests для System.NotImplementedException / System.NotSupportedException

2

Я реализую набор интерфейсов из сторонней библиотеки. Я не хочу поддерживать все функции, определенные в интерфейсах, поэтому я бросаю System.NotImplementedException/System.NotSupportedException для не поддерживаемых функций.

Должен ли я писать Unit-тесты для фрагмента кода, который генерирует исключение? Это нормально, если я пишу тесты?

  • 1
    NotSupportedException обычно подразумевает, что «эта реализация никогда не будет поддерживать эту функцию», поэтому UT для документирования этого факта представляется целесообразным. NotImplementedException обычно означает «я еще не успел его реализовать», поэтому я бы не подумал, что вам понадобится UT, который ожидает это исключение.
  • 0
    «Я не хочу поддерживать все функции, определенные в интерфейсах». Тогда вам не следует реализовывать это. Нет смысла в реализации интерфейса только в меру.
Показать ещё 4 комментария
Теги:
unit-testing
exception-handling

1 ответ

1

Вполне нормально записывать модульные тесты, проверяющие NotSupportedExceptions в реализациях частичного интерфейса. Сделав это, вы задокументируете, что это желаемое поведение реализации. Если кто-то воспользуется этим методом позже, он должен отрегулировать unit тест и должен -at least- подумать, если это новое желаемое поведение системы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню