Closed EvgeniyOst closed 2 months ago
Отлично, спасибо. Если есть время и желание дальше еще что-то добавлять, то могу рассказать, как писать юнит-тесты под все это дело. Было бы тогда вообще огонь)
Можно также посмотреть, как они реализованы в модуле OPI_Тесты для вашего предыдущего PR по лидам
Еще поправлю название у метода ПолучитьСтруктуруСделок на ПолучитьСтруктуруСделКИ
По тестам - да, было бы интересно попрактиковаться. В теории с yaxunit знаком, напишите, пожалуйста, что нужно поставить и как их запускать.
Отлично
что нужно поставить и как их запускать
Нужно в конфигурацию, где ведется разработка, добавить расширение Yaxа. Оно само должно найти тесты и подгрузить их при открытии основной его обработки
Тесты пишутся по особым правилам, ниже объясню зачем они нужны. Для создания тестов под новый раздел нужно:
Данные получаются методом OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию из json файла, где первый параметр это имя поля в файле, а второй - структура. Сам JSON файл можно разместить где угодно, нужно только добавить путь в функцию ПутьКФайлуДанных того же модуля OPI_ПолучениеДанныхТестов
Файл выглядит примерно вот так
Если нужны будут файлы для теста, то можно использовать вот эти (ОПИ сам преобразует в двоичные)
"GIF": "https://openintegrations.dev/test_data/animation.gif",
"Video": "https://openintegrations.dev/test_data/video.mp4",
"Audio": "https://openintegrations.dev/test_data/song.mp3",
"Audio2": "https://openintegrations.dev/test_data/song.m4a",
"Document": "https://openintegrations.dev/test_data/document.docx",
"Picture": "https://openintegrations.dev/test_data/picture.jpg",
"Picture2": "https://openintegrations.dev/test_data/picture2.jpg",
"Picture3": "https://openintegrations.dev/test_data/spy2.png",
Из основных моментов здесь:
Начинается с OPI_ПолучениеДанныхТестов.ОжидаетЧто(), где в скобках указывается переменная. Далее, после точки указывается, что проверяем: Заполнено(), ИмеетТип("Массив"), Равно("Такое то значение")
Это все довольно муторно, но так надо) С большего для автодокументации: доки на https://openintegrations.dev/ полностью автоматические и создаются из вот таких разнообразных правил
Так, например, одиночные тесты под каждую функцию это не только тесты сами по себе, но еще и примеры кода для документации. Для чего и нужны END и SKIP - они отмечают, какие строки кода не должны попасть в документацию. Запись же лога через // !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог попадают в пример ответа в тех же доках (при прогоне этих тестов в OneScript (они общие для OS и 1С) в Github Actions, как например здесь https://github.com/Bayselonarrend/OpenIntegrations/actions/runs/10512932585)
Cfeху YaxUnit можно тут взять
https://github.com/bia-technologies/yaxunit/releases/tag/24.05
Добавил методы для работы со сделками: