Питання, яке задавали багато разів раніше, але з конкретною розробкою mvc нахилу.
Я був дуже хорошим хлопчиком і кодував усі мої дії контролера за допомогою відповідних тестових одиниць, що було чудово (якщо іноді мало [читати ЛОТ]). Якщо чесно, я фактично створив невеликий шаблон T4, щоб написати більшу частину голих кісток тестів, що використовуються, а потім підкоригувався відповідно до використання. Я визнаю, що не зовсім впевнений, як впоратися з тестами у видах, які містять часткові перегляди - але це історія для іншого питання.
Тепер для мене складно вирішити, як саме глибоке покриття повинно бути в моєму рівні обслуговування. Причина полягає в тому, що деякі мої методи обслуговування (для кращого або гіршого) фактично виконують різноманітні запити linq, які потім надають дискретну інформацію для подальшої логіки в межах методу. Я знаю, що я міг (повинен ??) розбити ці методи лише для виклику необхідної логіки для кожного оператора linq, а потім застосувати їх у методі. Однак у багатьох випадках ніколи не відбувається повторного використання функцій linq, і тому здається, що це дозволить перефактурувати код занадто далеко.
Я запитую, чи є складна логіка, що виникає в рамках методу, чи достатньо добре мати тестовий метод, який просто стверджує необхідний результат та / або очікувану помилку, чи слід також імітувати та перевіряти кожну логічну лінію. як я бачу, щоб зробити тестування правильно, тоді логіка методу (рядок за рядком) повинна також отримувати якесь покриття. Однак це (на мій наївний погляд) може призвести до нескінченного циклу спроб тримати тест і реалізований метод настільки тісно вирівняні (що я знаю, якими вони повинні бути), щоб створити котеджне господарство в самих тестах.
Я знаю, що моє запитання може образити декількох прихильників TDD, які сприйматимуть це як не мастера. Якщо я не перебуваю в таборі TDD, для мене це "так, мовляв", звідси і питання.
btw - перевірив це на ідеї:
дивлячись на FWD до стабільних нинішніх результатів :)
[редагувати] - на користь єдиного (ну на даний момент одинокого !!) "закритого" виборця. це питання не є суб'єктивним. Я шукаю консенсус на дуже сфокусовану тему. Я не намагаюся розпалювати негативні пристрасті, я не хочу розкривати недоліки в технології - я ВЕЛИЧИЙ фанат. Тож, будь ласка, киньте ввічливий коментар на мою користь, якщо голосування завершиться, оскільки це може допомогти мені змінити питання, якщо є двозначність чи дезінформація. це питання може принести користь значній частині населення mvc.
Дякую!!
джим