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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

приходится придумывать и реализовывать более точное АПИ.
14. for_sale 796 28.07.19 16:14 Сейчас в теме
Очень хорошая статья, большое спасибо!
Вопрос - можно ли где-то со всем этим функционалом ознакомиться более детально?
Ведь для данных примеров просто взяты некоторые функции, но их там, по идее, в разы больше. Где-то (кроме сурскода) можно почитать описание возможностей? Плагины, инициализация и т.п.
15. Сурикат 266 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 796 29.07.19 16:20 Сейчас в теме
(15)
Спасибо за ссылки! По поводу документации - давно присматриваюсь и к АДД, и к ВА, первое время просто не мог поверить, что такие титанические труды не имеют никакой официальной документации!
17. artbear 1159 29.07.19 18:14 Сейчас в теме
(16) Документация есть, но, конечно, ее очень не хватает.
Кодить мы все любим, а с документацией не дружим.
18. artbear 1159 29.07.19 18:16 Сейчас в теме
По Vanessa-ADD есть уже немало статей.
И здесь на Инфостарте есть цикл статей,
и в документации на гитхабе Vanessa-ADD https://github.com/silverbulleters/add/blob/master/doc/README.mdе сть первые же ссылки - "почитать статьи, посмотреть видео"
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Технический лидер, архитектор 1С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день

Специалист внедрения и сопровождения 1С
Омск
зарплата от 25 000 руб. до 50 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству