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

Тестирование сценария бота

Прежде чем опубликовать бота протестируем его, убедимся, что не совершили ошибок в процессе написания сценария. Затем с помощью тестового виджета поиграем в созданную игру и проверим, что переходы в сценарии работают корректно.

Тестирование .xml

Напишем простой тест, охватывающий переходы по стейтам для бота. Для этого создайте файл text.xml, в папке test и напишите следующий тест:

<test>
<test-case id="1">
<q>/start</q>
<a>Привет! Предлагаю сыграть в игру "Города". Кто загадывает город: компьютер или пользователь?</a>
<q>я</q>
<a>Назовите город</a>
<q>Москва</q>
<a state="/LetsPlayCitiesGame/CityPattern"></a>
</test-case>

<test-case id="2">
<q>/start</q>
<a>Привет! Предлагаю сыграть в игру "Города". Кто загадывает город: компьютер или пользователь?</a>
<q>не я</q>
<a state="/start/Computer"></a>
<a state="/LetsPlayCitiesGame"></a>
</test-case>

<test-case id="3">
<state>LetsPlayCitiesGame</state>
<q>сдаюсь</q>
<a>Очень жаль! Если передумаешь — скажи "давай поиграем"</a>
<q>играть</q>
<a>Привет! Предлагаю сыграть в игру "Города". Кто загадывает город: компьютер или пользователь?</a>
</test-case>

<test-case id="4">
<q>/start</q>
<a>Привет! Предлагаю сыграть в игру "Города". Кто загадывает город: компьютер или пользователь?</a>
<q>не ты</q>
<a>Назовите город</a>
<q>Спб</q>
<a>Используйте только полные названия городов</a>
</test-case>
</test>

Нажмите на иконку Сохраните написанный сценарий, расположенную справа на верхней панели, для сохранения написанного сценария.

Каждый test-case проверяет, соответствует ли реальный ответ бота ожидаемому. Реплика пользователя обозначается тегом <q>, а реакция <a>.

Каждому test-case можно присвоить свой идентификатор id:

  1. <test-case id="1"> — проверяем начало игры и решение пользователя начинать игру первым.
  2. <test-case id="2"> — проверяем корректность перехода в стейт /LetsPlayCitiesGame если пользователь введет сообщение не я.
  3. <test-case id="3"> — проверяем переходы между стейтами, если пользователь сначала захочет выйти из игры, а потом начать ее вновь.
  4. <test-case id="4"> — проверяем, можно ли ввести короткое название города.
подсказка

Тестирование с помощью тестового виджета

  1. Пользователь начинает игру:

Тестовый виджет

  1. Бот начинает игру:

Тестовый виджет

  1. Назовем город, который был уже ранее использован, а затем несуществующий город:

Тестовый виджет

  1. Используем короткое название города:

Тестовый виджет

  1. Попробуем завершить игру и начать ее снова:

Тестовый виджет

Теперь подключите самостоятельно канал и поиграйте с ботом.