Проверка автоматизации микросервисной проверки необязательных полей - PullRequest
0 голосов
/ 24 февраля 2020

В настоящее время я работаю над автоматизацией функциональных испытаний микросервисов для системы планирования встреч для розничных заказов. У нас есть служба A, которая вызывает службу B с помощью адаптера с данными клиента, номером заказа, идентификатором агента (необязательно). Служба B возвращает ответ о доступных дате и временном интервале. Однако существует 2 сценария ios планирования

1) Служба B может возвращать слоты указанного агента c, если идентификатор агента передается ему из службы A 2) Служба B может возвращать слоты всех агентов, если Идентификатор агента не передается.

Теперь я хочу проверить следующий сценарий: Когда я передаю идентификатор агента в тело службы A, адаптер должен передать его при вызове службы B.

Есть ли как я могу проверить, передал ли адаптер правильный запрос в службу B. Я посмотрел на Pact для проверки контракта, но так как ответ в обоих случаях одинаков, я не мог понять, как мы можем этого добиться.

1 Ответ

0 голосов
/ 25 февраля 2020

Я не совсем уверен, что вы подразумеваете под "адаптером", но я предполагаю, что именно клиентский класс в кодовой базе Сервиса A отвечает за выполнение HTTP-запросов к Сервису B. Если это так, я считаю, Ваш вопрос «могу ли я проверить, что адаптер передает параметр идентификатора агента в службу B в запросе». Ответ - да, это именно то, что вы делаете, когда пишете ожидание запроса в потребительском тесте Pact.

«withRequest» - это часть теста, в которой вы определяете ожидаемый запрос:

const interaction = {
        state: "i have a list of cats",
        uponReceiving: "a request for cats with given catId",
        withRequest: {
          method: "GET",
          path: "/cats",
          query: {
            "catId[]": Matchers.eachLike("1"),
          },
          headers: {
            Accept: "application/json",
          },
        },
        willRespondWith: {
          status: 200,
          headers: {
            "Content-Type": "application/json",
          },
          body: EXPECTED_BODY,
        },
      }

https://github.com/pact-foundation/pact-js/blob/058ab6f63e4273b545761e82cd3d9a1ae4f72bb6/examples/jest/ тесты / catAPI.spe c .js # L17-L26

...