Мы на несколько месяцев участвуем в экологичном проекте по переработке логического и бизнес-уровней нашего продукта. Используя MEF (внедрение зависимостей), мы достигли высокого уровня покрытия кода, и я считаю, что у нас довольно солидный продукт. Поскольку мы работали над более сложной логикой, мне стало все труднее проводить модульное тестирование.
Мы используем CompositionContainer для запроса типов, требуемых этими сложными алгоритмами. Моим модульным тестам иногда трудно следовать из-за длительного процесса настройки фиктивного объекта, который должен проходить, в точности, чтобы можно было проверить определенные обстоятельства. Мои модульные тесты часто занимают у меня больше времени, чем код, который я пытаюсь протестировать.
Я понимаю, что это проблема не только внедрения зависимостей, но и дизайна в целом. Виноват ли в моих слишком сложных тестах плохой дизайн метода или отсутствие состава? Я пробовал базовые классовые тесты, создавая часто используемые фиктивные объекты и стараясь максимально использовать контейнер, чтобы облегчить эту проблему, но мои тесты всегда оказываются достаточно сложными и трудными для отладки. Какие советы вы видели, чтобы такие тесты были краткими, удобочитаемыми и эффективными?