Когда я начал читать о Moq , я понял, что модульное тестирование не должно быть болезненным.Внизу страницы есть несколько хороших ссылок о том, как модульные тесты могут быть построены с помощью имитации.
Хорошая особенность использования интерфейсов для контролируемой связи и тестирования состоит в том, что добавление интерфейса к существующей кодовой базене переломный момент.Я добавляю новые функции в некоторый унаследованный код и создаю интерфейсы для существующих классов, чтобы новые функции могли разрабатываться и тестироваться изолированно.Пока это работает хорошо, и я планирую продолжить этот стиль тестирования на других проектах.Для меня ключевым было избежать разработки сложных классов-заглушек с большим количеством уродливого условного кода, чтобы выставлять разные случаи для моих тестов.Дошло до того, что тестовый код был настолько сложным, что я не мог быть уверен, что это был код или тест, который был нарушен.