Тестирование сценария бота
Прежде чем опубликовать бота протестируем его, убедимся, что не совершили ошибок в процессе написания сценария. Затем с помощью тестового виджета поиграем в созданную игру и проверим, что переходы в сценарии работают корректно.
Тестирование .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
:
<test-case id="1">
— проверяем начало игры и решение пользователя начинать игру первым.<test-case id="2">
— проверяем корректность перехода в стейт/LetsPlayCitiesGame
если пользователь введет сообщениене я
.<test-case id="3">
— проверяем переходы между стейтами, если пользователь сначала захочет выйти из игры, а потом начать ее вновь.<test-case id="4">
— проверяем, можно ли ввести короткое название города.
подсказка
Подробнее о тестах сценария бота
Тестирование с помощью тестового виджета
- Пользователь начинает игру:
- Бот начинает игру:
- Назовем город, который был уже ранее использован, а затем несуществующий город:
- Используем короткое название города:
- Попробуем завершить игру и начать ее снова:
Теперь подключите самостоятельно канал и поиграйте с ботом.