Перейти к основному содержимому

Поля набора диалогов

Файл с набором диалогов должен иметь все следующие поля:

Другие поля в файле игнорируются.

testCase

Имя тест-кейса, к которому относится шаг.

Тест-кейс может иметь несколько шагов. В этом случае указывайте у шагов одинаковое значение в поле testCase.

Шаги тест-кейса выполняются в том порядке, в котором они указаны в файле. Если один из шагов неуспешный, то следующие шаги тоже считаются неуспешными и не выполняются.

Пример: тест-кейс из нескольких шагов
testCasecommentrequestexpectedResponseexpectedStateskippreActions
weather/start/Start
weatherприветПривет, привет!/Hello
weatherКакая погода?/Hello/Weather

Тест-кейс weather состоит из трех шагов:

  1. Пользователь пишет «/start». Ожидаемая реакция: бот перейдет в стейт /Start.
  2. Пользователь пишет «привет». Ожидаемая реакция: бот перейдет в стейт /Hello и ответит «Привет, привет!».
  3. Пользователь пишет «Какая погода?». Ожидаемая реакция: бот перейдет в стейт /Hello/Weather.

Если поле не заполнено, то используется случайный идентификатор.

comment

Комментарий к шагу. Поле заполнять необязательно.

request

Запрос пользователя, на который должен реагировать бот.

expectedResponse и expectedState

Реакция бота:

  • expectedResponse — ожидаемый текст ответа бота.

    Бот может давать несколько ответов подряд:

    • В одном стейте:

      state: Hello
      a: Привет!
      a: Как дела?
    • При переходе по стейтам:

      state: Hello
      a: Привет!
      go!: /Question

      state: Question
      a: Как дела?

    В этих случаях указывайте в поле expectedResponse ответы через пробел: Привет! Как дела?

  • expectedState — первый стейт, в который должен перейти бот. Указывайте полный путь. Путь должен начинаться с /.

У шага обязательно должно быть заполнено хотя бы одно из этих полей.

Во время тестирования проверяются только заполненные поля. Если ожидаемые значения совпали с полученными, то шаг считается успешным.

skip

Пропуск шага.

Возможные значения: TRUE, FALSE (значение по умолчанию). Регистр не учитывается.

Если указано TRUE, то шаг не выполняется и не учитывается при оценке.

preActions

Имя тест-кейса, шаги которого будут выполнены перед текущим шагом.

Шаги из preActions:

  • не проверяются и не влияют на оценку;
  • всегда выполняются, даже если у них в поле skip указано TRUE.
Пример использования preActions
testCasecommentrequestexpectedResponseexpectedStateskippreActions
hello/start/Start
helloприветПривет, привет!/Hello
weatherКакая погода?/Hello/Weatherhello
alarmПоставь будильник/Hello/Alarmhello

Чтобы узнать погоду или поставить будильник, пользователь сначала должен написать «/start» и «привет». Чтобы не добавлять эти шаги в тест-кейсы weather и alarm, укажите их в тест-кейсе hello:

  1. Пользователь пишет «/start». Ожидаемая реакция: бот перейдет в стейт /Start.
  2. Пользователь пишет «привет». Ожидаемая реакция: бот перейдет в стейт /Hello и ответит «Привет, привет!».

Теперь вы можете использовать эти шаги перед тест-кейсами weather и alarm с помощью поля preActions.

Тест-кейс weather:

  1. Выполняются шаги preActions:
    1. Пользователь пишет «/start».
    2. Пользователь пишет «привет».
  2. Пользователь пишет «Какая погода?». Ожидаемая реакция: бот перейдет в стейт /Hello/Weather.

Тест-кейс alarm:

  1. Выполняются шаги preActions:
    1. Пользователь пишет «/start».
    2. Пользователь пишет «привет».
  2. Пользователь пишет «Поставь будильник». Ожидаемая реакция: бот перейдет в стейт /Hello/Alarm.

Поле заполнять необязательно.