Тестирование слот-филлинга

Раздел содержит пример тестирования сценария смартапа с подключенным слот-филлингом.

Сценарий со слот-филлингом

Пример сценария:

require: slotfilling/slotFilling.sc
  module = sys.zb-common

theme: /

    state: Start
        q: $regex</start>
        a: Начнём!

    state:
        intent!: /Погода
        a: Погода в {{$parseTree._City}} на {{$parseTree._Date.value}}

    state: CatchAll
        event: noMatch
        a: noMatch

Интент /Погода реагирует на запрос прогноза погоды. Слоты заполнены следующим образом:

Заполнение слотов для интента Погода

Где @City — пользовательская сущность, которая содержит все города, доступные для прогноза погоды.

Поведение сценария при разных запросах:

  1. «Погода на завтра в Москве»: слоты заполнены, смартап предоставит ответ.
  2. «Погода на завтра»: слот City не заполнен, смартап задаст уточняющие вопросы. После подходящего ответа, управление перейдет сценарий, а смартап даст ответ.
  3. «Погода в Москве»: слот Date не заполнен, смартап задаст уточняющие вопросы. После подходящего ответа, управление перейдет сценарий, а смартап даст ответ.

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

Пример теста, который требуется добавить в папку папка_проекта/test:

<test>
    <test-case>
        <q>/start</q>
        <a>Начнём!</a>
        <q>Прогноз погоды</q>
        <a>В каком городе?</a>
        <q>В Москве</q>
        <a>На какую дату?</a>
        <q>На 11 декабря 2019</q>
        <a>Погода в Санкт-Петербург на 2019-12-11T00:00:00</a>
    </test-case>
</test>

Тестовый сценарий проверяет случай, когда слоты не заполнены. Поэтому после <q>Прогноз погоды</q> следуют уточняющие вопросы. После того, как все слоты заполнены, сценарий выходит из слот-филлинга.

При написании тестов для сценария со слот-филлингом, учитывайте различные ситуации. Например, когда один слот заполнен, но последующие требуют заполнения.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней