Никто уже не отрицает полезность тестов в любой сколько-нибудь сложной системе. Без тестов очень ...
Никто уже не отрицает полезность тестов в любой сколько-нибудь сложной системе. Без тестов очень быстро можно скатиться в хаос и проводить большую часть времени в отладчике, занимаясь поиском и отловом косвенных эффектов от изменений той или иной части приложения. Тесты важны, нужны и так далее по тексту.
По науке, тесты являются документированием системы. Грамотно написанные тесты дают понять, как работает система, как ведет себя, причем читаться все это должно как готовая спецификация на поведение системы. Т.е. в идеале должен получаться связный и понятный текст. Это идеал, к которому постепенно приближаются методы тестирования, начиная от юнит тестирования и наиболее явно проявляясь в поведенческом/приемочном тестировании, когда сами тесты уже пишутся на языке бизнеса (в этом моменте вспоминаем Fitnesse).
При написании тестов не стоит скупиться на строчки кода и классы, важно только их правильно структурировать. Я считаю, что может быть вполне нормальной ситуация, когда у вас тестовый класс состоит только из одного тестового метода – не надо этого стесняться, это гораздо лучше, чем классы на 20 экранов. HD экранов.
В общем, все должно быть направлено на максимальную ясность и четкость тестов, чтобы явно было видно все взаимосвязи. Чтобы можно было восстановить логику программы по одним лишь тестам. В дело читабельности пойдет не только Assert DSL (Domain Specific Language), но и именование файлов, подход Arrange Act Assert. Все это не новые подходы как оказывается, но широкой известности пока не получившие, судя по тому, что я вижу в окружающих меня проектах. Да и сам я натолкнулся на новые темы случайно, изучая исходные коды StructureMap.
Чтобы не томить, сразу расскажу какие основные шаги предлагаются для улучшения тестов:
- Именовать тестовые файлы по основному методу, который тестируется.
- Использовать DSL для создания объектов, чтобы методы делать максимально лаконичными.
- Стараться писать тесты в стиле «один тестовый метод – один assert».
- Структурировать внутренности теста.
- Создать и использовать Assert DSL.
Думаю что для большинства многие перечисленные пункты не новость, и почти все они применяются в реальной разработке.
Раскрытие темы с примерами и в картинках
Компания Apple снова радует своих потребителей, на этот раз модернизация касается улучшения или ...
Я что-то пропустила в этом мире? Или эта серия была?
Современный город диктует свои суровые правила. На Манхеттене, Нью-Йорк, Америка, лишнего места для ...
Национальный музей Американской истории (71) находится почти напротив Технического музея, у другого ...
Национальный музей Американской истории (71) находится почти напротив Технического музея, у другого выхода со станции метро.
Прямо по курсу находится Подземелье - город цивильных гулей, а в нижних залах обитают дикие гули. Я тут нашёл книги "Никола Тесла и Вы", "Терапевтический журнал округа Колумбия" и "Боевой устав китайского спецназа". Но спустился я туда за плакатом "Мемориал Линкольна":
Ещё я там нашёл другие исторические вещи: Дневник Линкольна, Цилиндр Линкольна, Голос Линкольна, Коллекция старинных монет Линкольна, Фигурка Эйба, Плакат "Разыскивается Джон Уилкс Бут" и Прокламация о призыве 1863 г. А ещё там есть уникальное охотничье ружьё, которое никогда не промахивается - Винтовка Линкольна. Мощная штука, буду пока ходить с ней.
[content]