• Как создать автоматические тесты (единицы или интеграции) для обработки исключений?
NUnit имеет атрибут ExpectedException (http://www.nunit.org/index.php?p=exception&r=2.4), который подтверждает, что было сгенерировано исключение.
Вы также захотите убедиться, что исключение было зарегистрировано. Может ли LogFacade.GetLog () вернуть фиктивный журнал?
• Существуют ли другие способы сделать это без внедрения?
Этозависит от вашего определения 'инъекция' .
В общем смысле инъекции - используя что-то, не созданное в классе - вам do необходимо ввести маппер,в противном случае, как говорит @sll, это не модульный тест.
Если вы беспокоитесь об изменении ctor для TableOneDAO, вы можете использовать фабрику для создания картографа вместо создания его в DAO.Вы можете зарегистрировать макет макета на заводе.
Другое
Если вы собираетесь делать это много (создание и тестирование большого количества таблиц DAO), ясоздаст базовый класс TableDAO и выведет из него все остальные.Производные классы должны предоставлять только строку mapper и sql.
При этом способе обработки исключений требуется только один раз протестировать модуль;для базового класса.
hth,
Alan.