Добавление собственного тела в диалоги тестирования botium - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь добавить местоположение в теле моего запроса к нескольким тестам botium. Единственный способ, которым мне удалось это сделать, - это использование пользовательских ассеттеров. Это надежный способ сделать это? Это единственный способ сделать это?

convo.txt

Market Snapshot near me
#begin
LOCATION

#me
Show me snapshot near me

#bot
There are 9 market snaps near your location.
CARDS snapshot

#end
LOCATION

LocationAsserter.js

module.exports = class LocationAsserter {
  constructor(context, caps = {}) {
    this.context = context;
    this.caps = caps;
  }

  assertConvoBegin({ convo, container, args }) {
    console.log(`MyAsserter assertConvoBegin: ${convo.header.name}`);
    this.caps.SIMPLEREST_BODY_TEMPLATE.location = {
      latitude: 30.4,
      longitude: -97.7,
    };

    return Promise.resolve();
  }

  assertConvoStep({ convo, convoStep, args, botMsg }) {
    console.log(`MyAsserter assertConvoStep, botMessage: ...`);
    return Promise.resolve();
  }

  assertConvoEnd({ convo, container, msgs, args }) {
    console.log(`MyAsserter assertConvoEnd ${convo.header.name}, converstation: ...`);
    delete this.caps.SIMPLEREST_BODY_TEMPLATE.location;
    return Promise.resolve();
  }
};

1 Ответ

1 голос
/ 01 октября 2019

Вот еще один вариант, вы можете использовать возможность SIMPLEREST_REQUEST_HOOK для изменения тела HTTP-запроса с вашей собственной логикой.

...
"SIMPLEREST_REQUEST_HOOK": "requestOptions.body.location = { latitude: 30.4, longitude: -97.7 }",
...

Этот хук называетсянепосредственно перед выполнением любого HTTP-запроса.

Вы можете ссылаться на собственный модуль или файл Javascript вместо встроенного кода

...