Принципы юнит-тестирования
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Принципы юнит-тестирования

Владислав Ц.
Владислав Ц.дәйексөз келтірді2 жыл бұрын
Тесты — это тоже код. Их следует рассматривать как часть кодовой базы, предназначенную для решения конкретной проблемы: обеспечения правильности приложения. Юнит-тесты, как и любой другой код, также подвержены ошибкам и требуют сопровождения
3 Ұнайды
Комментарий жазу
Владислав Ц.
Владислав Ц.дәйексөз келтірді2 жыл бұрын
Возможно, вы также слышали о паттерне «Given-When-Then», похожем на AAA. Этот паттерн также рекомендует разбить тест на три части: • Given — соответствует секции подготовки (arrange); • When — соответствует секции действия (act); • Then — соответствует секции проверки (assert). В отношении построения теста эти два паттерна ничем не отличаются. Единственное отличие заключается в том, что структура «Given-When-Then» более понятна для не-программиста
2 Ұнайды
Комментарий жазу
Владислав Ц.
Владислав Ц.дәйексөз келтірді2 жыл бұрын
Тесты не должны проверять единицы кода (units of code). Вместо этого они должны проверять единицы поведения (units of behavior) — нечто имеющее смысл для предметной области, а в идеале — нечто такое, полезность которого будет понятна бизнесу. Количество классов, необходимых для реализации такой единицы поведения, не имеет значения. Тест может охватывать как несколько классов, так и только один класс или даже всего один маленький метод
2 Ұнайды
Комментарий жазу
Денис Кукуреко
Денис Кукурекодәйексөз келтірді1 ай бұрын
Функциональная архитектура максимизирует объем кода, написанного в чисто функциональном (неизменяемом) стиле, и сводит к минимуму объем кода, работающий с побочными эффектами. Под «неизменяемостью» имеется в виду, что после создания объекта его состояние изменяться не может — в отличие от изменяемых объектов, которые могут изменяться после создания.
1 Ұнайды
Комментарий жазу
Денис Кукуреко
Денис Кукурекодәйексөз келтірді1 ай бұрын
Тестирование выходных данных показывает наилучшие результаты. Этот стиль приводит к тестам, которые редко завязываются на детали имплементации и, как следствие, не требуют особого внимания для сохранения устойчивости к рефакторингу. Такие тесты также создают меньше всего проблем с сопровождением благодаря своей компактности и отсутствию внепроцессных зависимостей.
1 Ұнайды
Комментарий жазу
Денис Кукуреко
Денис Кукурекодәйексөз келтірді6 ай бұрын
Лучшие тесты демонстрируют максимально возможную простоту поддержки и устойчивость к рефакторингу; всегда старайтесь максимизировать эти два атрибута. Компромисс сводится к выбору между защитой от багов и быстротой обратной связи
1 Ұнайды
Комментарий жазу
Денис Кукуреко
Денис Кукурекодәйексөз келтірді6 ай бұрын
четыре атрибута хороших юнит-тестов: • защита от багов; • устойчивость к рефакторингу; • быстрая обратная связь; • простота поддержки. Произведение этих четырех атрибутов определяет эффективность теста.
1 Ұнайды
Комментарий жазу
Владислав Ц.
Владислав Ц.дәйексөз келтірді2 жыл бұрын
Невозможно добиться цели юнит-тестирования, просто добавив в проект больше тестов. Необходимо учитывать как пользу этих тестов, так и затраты на их сопровождение.
1 Ұнайды
Комментарий жазу
Владислав Ц.
Владислав Ц.дәйексөз келтірді2 жыл бұрын
тесты требуют начальных вложений, и иногда весьма значительных. Но в долгосрочной перспективе они окупаются, позволяя проекту расти на более поздних стадиях. Разработка большинства нетривиального программного обеспечения без помощи тестов практически невозможна
1 Ұнайды
Комментарий жазу
Владислав Ц.
Владислав Ц.дәйексөз келтірді2 жыл бұрын
Сама возможность покрытия кода тестами — хороший критерий определения качества этого кода, но он работает только в одном направлении. Это хороший негативный признак — он выявляет низкокачественный код с относительно высокой точностью. Если вдруг обнаружится, что код трудно протестировать, это верный признак того, что код нуждается в улучшении. Плохое качество обычно проявляется в сильной связности (tight coupling) кода; это означает, что части кода недостаточно четко изолированы друг от друга, что в свою очередь создает сложности с их раздельным тестированием
1 Ұнайды
Комментарий жазу