vbondarevsky / Connector

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8
Apache License 2.0
638 stars 207 forks source link

Упрощение разработки своих парсеров и их тестов за счет быстрого создания мока ответа #71

Closed zeegin closed 2 years ago

zeegin commented 3 years ago

Я как разработчик различных SDK хочу иметь возможность писать свои парсеры результата, например

Функция КакМнеИзвестныйФормат(Ответ) Экспорт

КонецФункции

Когда я пишу Юнит-тесты на свои парсеры я хочу иметь возможность использовать заготовленные Мок ответов.

Для того чтобы проще готовить Мок ответов я хочу чтобы была функция-конструктор структуры ПодготовленныйОтвет.

Для этого необходимо вынести из метода ОтправитьЗапрос структуру ПодготовленныйОтвет в отдельный метод, который назвать, например, НовыйПодгтовленныйОтвет.

    ПодготовленныйОтвет = Новый Структура;
    ПодготовленныйОтвет.Вставить("ВремяВыполнения", ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало);
    ПодготовленныйОтвет.Вставить("Cookies", ИзвлечьCookies(Ответ.Заголовки, ПодготовленныйЗапрос.URL));
    ПодготовленныйОтвет.Вставить("Заголовки", Ответ.Заголовки);
    ПодготовленныйОтвет.Вставить("ЭтоПостоянныйРедирект", ЭтоПостоянныйРедирект(Ответ.КодСостояния, Ответ.Заголовки));
    ПодготовленныйОтвет.Вставить("ЭтоРедирект", ЭтоРедирект(Ответ.КодСостояния, Ответ.Заголовки));
    ПодготовленныйОтвет.Вставить("Кодировка", КодировкаИзЗаголовка(ЗаголовокContentType));
    ПодготовленныйОтвет.Вставить("Тело", Ответ.ПолучитьТелоКакДвоичныеДанные());
    ПодготовленныйОтвет.Вставить("КодСостояния", Ответ.КодСостояния);
    ПодготовленныйОтвет.Вставить("URL", ПодготовленныйЗапрос.URL);
vbondarevsky commented 3 years ago

@zeegin PR ждать? :)

zeegin commented 3 years ago

Да, уже почти готово

zeegin commented 3 years ago

Два новых поля в ответ будут добавлены: Метод - Строка, метод запроса, например GET Ошибки - Массив из Строка - Накопительный массив с ошибками который собирает ошибки по всем циклам запросов при периодических опросах с таймаутом. Используется в #84 для автоформирования текста подробного исключения.