Вопрос задавался много раз прежде, но с определенным уклоном развития MVC.
Я был очень хорошим мальчиком и кодировал все свои действия контроллера с соответствующими юнит-тестами, что было здорово (если немного [читай много раз) время от времени). Честно говоря, я на самом деле создал небольшой шаблон T4, чтобы написать большую часть начальных юнит-тестов, а затем настроил его в соответствии с потребностями. Я признаю, что не совсем уверен, как обращаться с тестами в представлениях, которые содержат частичные представления - но это история для другого вопроса.
Теперь мне сложно определиться с тем, насколько глубоким должно быть покрытие на моем уровне обслуживания. Причина в том, что некоторые из моих методов обслуживания (в лучшую или в худшую сторону) на самом деле выполняют множество запросов linq, которые затем предоставляют скрытую информацию для последующей логики внутри метода. Я знаю, что могу (должен ??) разбить эти методы, чтобы вызвать только необходимую логику для каждого оператора linq, а затем применить их в методе. Однако во многих случаях никогда не происходит повторного использования 'функций' linq, и поэтому кажется, что это приведет к рефакторингу кода слишком далеко.
То, что я спрашиваю, со сложной логикой, возникающей внутри метода, это «достаточно хорошо», чтобы иметь метод теста, который просто утверждает требуемый результат и / или ожидаемую ошибку, или если каждая логическая строка тоже симулируется и тестируется. как я понимаю, чтобы правильно провести тестирование, тогда логика метода (строка за строкой) тоже должна получить какое-то освещение. Однако это (по моему наивному мнению) может привести к бесконечному циклу попыток держать тест и внедренный метод настолько тесно выровненными (что, я знаю, они должны быть), чтобы создать коттеджную индустрию в самих тестах.
Я знаю, что мой вопрос может оскорбить некоторых из преданных TDD, которые воспримут это как легкую задачу. Находясь не в лагере TDD, для меня это «ежу понятно», отсюда и вопрос.
кстати - проверил это на идеи:
глядя сейчас на устойчивые отрицательные голоса :)
[править] - в пользу единственного (ну на данный момент одиночного !!) «близкого» избирателя. этот вопрос не субъективен. Я ищу консенсус на очень сфокусированную тему. Я не пытаюсь разжечь негативные страсти, я не собираюсь раскрывать недостатки в технологии - я ОГРОМНЫЙ фанат. Поэтому, пожалуйста, оставьте вежливый комментарий в мою пользу, если голосование будет закрыто, поскольку это может помочь мне реструктурировать вопрос в случае двусмысленности или дезинформации. Этот вопрос может принести пользу большой части населения MVC.
Спасибо!!
Джим