0. Сурикат 263 22.07.19 14:49 Сейчас в теме

О Unit-тестах замолвите слово. Часть 2

Пара практических примеров написания Unit-тестах с использованием фреймворка Vanessa-ADD.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. artbear 1156 22.07.19 15:45 Сейчас в теме
(0) Хорошая статья, живые примеры!

Спасибо!
2. artbear 1156 22.07.19 15:45 Сейчас в теме
мелкая опечатка бросилась в глаза

>путь до файла с тетсовой настройки
3. artbear 1156 22.07.19 15:58 Сейчас в теме
(0) В примере теста Тест_ЧтениеИнформациисСервера_НесколькоНастроек() не видно, что проверяемые данные (Спр.Конфигурации) предварительно очищены. Без этой очистки боевой код может переиспользовать существующие элементы :(

Для примера это неважно, а вот в разработке важно.
4. Сурикат 263 22.07.19 18:44 Сейчас в теме
(3) Спасибо, за замечание =)

В других случаях можно делать параметризуемые шаблоны и формировать наименование случайным образом во избежании проблем с совпадением данных =)
5. ImHunter 160 23.07.19 10:00 Сейчас в теме
Не видел, чтобы кто-то упоминал про расширения, создаваемые в помощь тестированию.
А ведь это круто - расшаривать приватные методы в специальном расширении и писать авто-тесты для того, что скрыто за кадром.
artbear; Сурикат; +2 Ответить
6. Сурикат 263 23.07.19 11:14 Сейчас в теме
(5)
Очень здоровский комментарий! Спасибо!

Еще ведь можно заменять вызов каких-то процедур, например обращение к файловой системе или выполнение сложного запроса с помощью расширения
8. artbear 1156 23.07.19 11:51 Сейчас в теме
(6)Да, расширения и для мокирования вполне удобно использовать, давно об этом думаю.
7. artbear 1156 23.07.19 11:50 Сейчас в теме
(5) Писать тесты для приватных методов - это зло.

если вдруг появилась такая потребность, подумайте, возможно, АПИ системы немного неверно :) и стоит его доработать.

Но идея с расширениями, конечно, полезная и уже есть примеры реализаций.
9. ImHunter 160 23.07.19 11:58 Сейчас в теме
(7) Да ладно - зло:))

Как протестировать работу какого-то достаточно сложного метода? Правильно! Написать интеграционный тест!
Но блин, в 50% случаев, нужно потратить на это кучу времени. А если приватные составляющие не протестированы - можно ведь и вообще надолго залипнуть.

В общем-то, я тоже сначала размышлял - заниматься ли таким хаком. Практика показала, что так спокойнее процесс проходит.
12. artbear 1156 23.07.19 12:16 Сейчас в теме
(9) А может быть, не делать сложные методы ? :)

а создавать несколько публичных интерфейсов/классов/модулей/обработок и тестировать их по отдельности.

как раз и получится и чистый ТДД по отдельным модулям/классам.
13. ImHunter 160 23.07.19 12:28 Сейчас в теме
(12) Не всегда ведь нужно публиковать составляющие какого-то метода. Ибо нефиг.
А так, пользуясь хаком, "приколачиваю" внутреннее поведение к заданным паттернам. Если кто-то что-то переделает - будет детальная картина, где сломались механизмы.
10. ImHunter 160 23.07.19 12:02 Сейчас в теме
И еще трюк:) Иногда пишу самотестируемые внешки.

Т.е., это целевая функциональная внешка. В ней еще дописан интерфейс для xUnit/ADD.
11. artbear 1156 23.07.19 12:12 Сейчас в теме
(10) я с этого начинал много лет назад. По ТДД создавал тесты и код в одной обработке.

но потом ушел от этого, чтобы максимально разнести публичный интерфейс функциональности и тесты, чтобы случайно не воспользоваться приватными функциями, реквизитами.

так легче и разрабатывать, и сопровождать.

приходится придумывать и реализовывать более точное АПИ.
14. for_sale 778 28.07.19 16:14 Сейчас в теме
Очень хорошая статья, большое спасибо!
Вопрос - можно ли где-то со всем этим функционалом ознакомиться более детально?
Ведь для данных примеров просто взяты некоторые функции, но их там, по идее, в разы больше. Где-то (кроме сурскода) можно почитать описание возможностей? Плагины, инициализация и т.п.
15. Сурикат 263 28.07.19 21:22 Сейчас в теме
(14)

https://github.com/silverbulleters/add/tree/master/doc/xdd - для части плагинов есть описание. Для части только читать исходники =(

Также можно поизучать тесты на модули - https://github.com/silverbulleters/add/tree/master/tests/xunit/Plugins. Тесты даже лучше, чем документация =)
for_sale; +1 Ответить
16. for_sale 778 29.07.19 16:20 Сейчас в теме
(15)
Спасибо за ссылки! По поводу документации - давно присматриваюсь и к АДД, и к ВА, первое время просто не мог поверить, что такие титанические труды не имеют никакой официальной документации!
17. artbear 1156 29.07.19 18:14 Сейчас в теме
(16) Документация есть, но, конечно, ее очень не хватает.
Кодить мы все любим, а с документацией не дружим.
18. artbear 1156 29.07.19 18:16 Сейчас в теме
По Vanessa-ADD есть уже немало статей.
И здесь на Инфостарте есть цикл статей,
и в документации на гитхабе Vanessa-ADD https://github.com/silverbulleters/add/blob/master/doc/README.mdе сть первые же ссылки - "почитать статьи, посмотреть видео"
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день

Программист 1C
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день