Skip to content

Latest commit

 

History

History
158 lines (117 loc) · 7.44 KB

README.md

File metadata and controls

158 lines (117 loc) · 7.44 KB

MockServer клиент для 1C:Предприятие 8

Quality Gate Status Maintainability Rating

english

MockServer-client-1c создан для управления MoskServer с помощью 1C:Предприятие 8. Клиент поставляется в виде расширения конфигурации и реализован в виде обработки, взаимодействующей с MockServer через REST API. MockServer поддерживает OpenAPI v3 спецификацию как в JSON, так и в YAML форматах.

Как это работает

 Мок = Обработки.MockServerClient.Создать();
 Мок.Сервер("localhost", "1080")
  .Когда(
   Мок.Запрос()
    .Метод("GET")
    .Путь("/some/path")
    .Заголовки()
      .Заголовок("foo", "boo")
  ).Ответить(
   Мок.Ответ()
    .КодОтвета(200)
  );

Вот и все! Мок создан!

// @unit-test
Процедура Пример(Фреймворк) Экспорт
  // given
  Мок = Обработки.MockServerClient.Создать();
  Мок.Сервер( "localhost", "1080", Истина );
  HTTPConnector.Get( "http://localhost:1080/some/path" );
  HTTPConnector.Get( "http://localhost:1080/some/path" );
  // when
  Мок.Когда(
      Мок.Запрос()
        .Путь("/some/path")
    ).Проверить(
      Мок.Повторений()
        .НеМенее(2)
    );
  // then
  Проверка.ЭтоИстина(Мок.Успешно());
КонецПроцедуры

Протестировано!

Примеры кода

Программный интерфейс

Начало работы

Руководство пользователя (англ.)

Обычная последовательность действий при работе с MockServer:

Запуск MockServer

Документация по запуску MockServer

Пример запуска docker-контейнера с MockServer:

docker run -d --rm -p 1080:1080 --name mockserver-1c-integration mockserver/mockserver -logLevel DEBUG -serverPort 1080

Или запуск docker-compose.yml из корня текущего проекта:

docker-compose -f "docker-compose.yml" up -d --build

Создание экземпляра клиента

Подключение к серверу по умолчанию:

Мок = Обработки.MockServerClient.Создать();

Подключение к серверу с некоторым адресом и портом подключения:

Мок = Обработки.MockServerClient.Создать();
Мок = Мок.Server( "http://server" );
# или
Мок = Обработки.MockServerClient.Создать();
Мок = Мок.Сервер( "http://server", "1099" );

Подключение к серверу с некоторым адресом и портом подключения с предварительной очисткой MockServer:

Мок = Обработки.MockServerClient.Создать();
Мок = Мок.Сервер( "http://server", "1099", Истина );

Установка ожидания поведения

Установка ожидания поведения (и проверка запросов) состоит из двух стадий: подготовка условий (в формате JSON) и выполнение действия для этих условий (отправка JSON на сервер).

Для клиента доступны два вида методов: промежуточные (возвращающие ссылки на объект клиента) и терминальные (выполняющие некоторое действие). Некоторые методы принимать в качестве параметров как ссылки на объекты с установленными предварительными условиями, так и строки в формате JSON. Перед отправкой сообщения на сервер будет автоматически сгенерирован необходимый JSON в зависимости от выбранной терминальной операции и предварительных условий.

Текущая реализация клиента позволяет использовать вызовы методов в виде цепочки действий, завершающихся терминальной операцией (fluent interface):

  # передача готового JSON без автоматической генерации
  Мок.Сервер( "localhost", "1080" )
    .Когда( "{""name"":""value""}" )
    .Ответить();

  # передача свойства httpRequest в JSON-формате
  Мок.Server( "localhost", "1080" )
    .Когда(
      Мок.Запрос( """name"":""value""" )
    )
    .Ответить();

  # комбинированный вариант
  Мок.Сервер( "localhost", "1080" )
    .Когда(
      Мок.Запрос()
        .Метод( "GET" )
        .Путь( "some/path" )
    )
    .Ответить(
        Мок.Ответ( """statusCode"": 404" )
    );

Зависимости

Проект создан с помощью:

  1. 1C:Enterprise 8.3.16.1502+ (8.3.16 compatibility mode)
  2. 1C:Enterprise Development Tools 2020.4 RC1
  3. 1Unit 0.4.0+
  4. vanessa-automation
  5. dt.bslls.validator
  6. BSL Language Server

Работа с HTTP реализована с помощью следующих библиотек: