Тестирование интеграций с использованием 1С:Шина. СообщениеСервисаИнтеграции
При тестировании интеграций с использованием 1С:Шина часто возникает потребность в тестировании сборки и разборки сообщений сервисов интеграции. Однако объект СообщениеСервисаИнтеграции
не имеет конструктора, что делает его создание и настройку в тестах затруднительным. Для решения этой проблемы была разработана заглушка (stub), которая имитирует интерфейс СообщениеСервисаИнтеграции
и позволяет упростить тестирование.
Возможности заглушки
Для упрощения тестирования была разработана заглушка СообщениеСервисаИнтеграции
, которая реализует интерфейс этого объекта и предоставляет методы для настройки данных. Заглушка включена в библиотеку YAxUnit и доступна через метод ЮТест.Данные().СообщениеСервисаИнтеграции
.
Заглушка для СообщениеСервисаИнтеграции
предоставляет следующие возможности:
Реализация свойств и методов СообщениеСервисаИнтеграции
-
Свойства:
ДатаОтправки
— дата отправки сообщения.ДатаУстаревания
— дата устаревания сообщения.Идентификатор
— уникальный идентификатор сообщения.ИдентификаторСообщенияЗапроса
— идентификатор сообщения-запроса.КодОтправителя
— код отправителя сообщения.КодПолучателя
— код получателя сообщения.Параметры
— параметры сообщения.РазмерТела
— размер тела сообщения.
-
Методы:
ПолучитьТелоКакПоток()
— получение тела сообщения в виде потока.
Методы настройки
Заглушка также предоставляет методы настройки, реализованные в виде текучих выражений (fluent API), что делает процесс настройки данных более удобным и читаемым.
Установка тела сообщения
УстановитьТелоКакДвоичныеДанные(ДвоичныеДанные)
- Описание: Устанавливает тело сообщения в виде двоичных данных.
- Параметры:
ДвоичныеДанные
— двоичные данные, которые будут использоваться в качестве тела сообщения.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
УстановитьТелоКакСтроку(Строка)
- Описание: Устанавливает тело сообщения в виде строки. При получении тела в другом формате (например, как поток или двоичные данные) происходит автоматическая конвертация.
- Параметры:
Строка
— строка, которая будет использоваться в качестве тела сообщения.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
УстановитьТелоКакСтрокуJSON(Данные)
- Описание: Устанавливает тело сообщения в виде строки JSON. Переданный объект автоматически сериализуется в строку JSON.
- Параметры:
Данные
— произвольный объект, который будет сериализован в JSON и использован в качестве тела сообщения.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
Установка свойств сообщения
ДобавитьПараметр(ИмяПараметра, Значение)
- Описание: Добавляет параметр к сообщению.
- Параметры:
ИмяПараметра
— строка, имя параметра.Значение
— строка, значение параметра.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
ДатаОтправки(Значение)
- Описание: Устанавливает дату отправки сообщения.
- Параметры:
Значение
— дата, дата отправки сообщения.
- Возвращаем ое значение: Заглушка
СообщениеСервисаИнтеграции
.
ДатаУстаревания(Значение)
- Описание: Устанавливает дату устаревания сообщения.
- Параметры:
Значение
— дата, дата устаревания сообщения.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
Идентификатор(Значение)
- Описание: Устанавливает уникальный идентификатор сообщения.
- Параметры:
Значение
— уникальный идентификатор.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
ИдентификаторСообщенияЗапроса(Значение)
- Описание: Устанавливает идентификатор сообщения-запроса.
- Параметры:
Значение
— уникальный идентификатор.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
КодОтправителя(Значение)
- Описание: Устанавливает код отправителя сообщения.
- Параметры:
Значение
— строка, код отправителя.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
КодПолучателя(Значение)
- Описание: Устанавливает код получателя сообщения.
- Параметры:
Значение
— строка, код получателя.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
РазмерТела(Значение)
- Описание: Устанавливает размер тела сообщения.
- Параметры:
Значение
— число, размер тела сообщения.
- Возвращаемое значение: Заглушка
СообщениеСервисаИнтеграции
.
Пример использования заглушки
Пример использования заглушки для тестирования кода, работающего с СообщениеСервисаИнтеграции
:
Процедура НастройкаСообщения()
// Создаем заглушку
Заглушка = ЮТест.Данные().СообщениеСервисаИнтеграции();
// Настраиваем свойства и тело сообщения
Заглушка.Идентификатор("12345")
.КодОтправителя("Sender1")
.КодПолучателя("Receiver1")
.ДатаОтправки("2023-10-01T12:00:00")
.ДатаУстаревания("2023-10-02T12:00:00")
.ДобавитьПараметр("Param1", "Value1")
.УстановитьТелоКакСтрокуJSON(Новый Структура("key", "value"));
// Проверяем результат
ЮТест.ОжидаетЧто(Заглушка)
.Свойство("Идентификатор").Равно("12345")
.Свойство("КодОтправителя").Равно("Sender1")
.Свойство("Параметры.Param1").Равно("Value1")
;
ЮТест.ОжидаетЧто(СтрокаИзПотока(Заглушка.ПолучитьТелоКакПоток()))
.Равно("{""key"":""value""}");
КонецПроцедуры