Site Logo

ObserveOutput

Группа: Основные конструкции

Платформы: t0241

Синтаксис

# : ObserveOutput <Alias>
    Mode : Spy ; необязательный параметр

Параметры

  • Alias - это alias модуля, от которого перехватываются события.
  • "Mode : Spy" - (необязательый параметр), включение режима автоматического протоколирования сообщений. В этом режиме приём сообщений будет выполняться автоматически (без использования инструкции Receive в явном виде) и выводиться в лог тестера. Если режим Spy не указан, то сообщения передаются в контейнере OverhearedMessage, и для их приёма нужно явно использовать инструкции Receive или ReceiveAsync.

Описание

Позволяет настроить получение копии исходящих событий от заданного модуля.

Примеры

Пример №1

Modules ; Модули, загружаемые для теста
  Responder : Uniteller.Framework.Kernel.Tester.Responder ; Модуль, загружаемый для тестирования
Script  ; скрипт
  1 : ObserveOutput <Responder> ; Подписываемся на получение исходящих сообщений от модуля Responder
  2 : Send <Responder>
    Kernel.System.ReplaceAll : 1
      Source : "123"
      Pattern : "2"
      Value : "1"
  3 : Receive <Responder>      ; Получаем сообщение о том, что модуль Responder сгенерировал исходящее сообщение и само это сообщение
    Kernel.OverHearedMessage : 1
      Message.Kind : <Kernel.System.ReplaceAll>
      Message.Source : "123"
      Message.Pattern : "2"
      Message.Value : "1"
  4 : Receive <Responder>      ; Получаем исходящее из Responder-а сообщение
    Kernel.System.ReplaceAll : 1
      Source : "123"
      Pattern : "2"
      Value : "1"
  5 : Skip <1> ; Пропускаем событие State changed от модуля Responder

Пример №2

Modules ; Модули, загружаемые для тестирования
  Responder : Uniteller.Framework.Kernel.Tester.Responder ; Модуль, загружаемый для тестирования
Script  ; скрипт
  1 : ObserveOutput <Responder> ; Подписываемся на получение исходящих сообщений модуля Responder
    Filter : Exclude ; Настраиваем эксклюзивный фильтр
      Kernel.System.Io.GetTextFileContent  ; Отказываемся получать информацию о отсылке сообщения Kernel.System.Io.GetTextFileContent
      Kernel.StateChanged                  ; Отказываемся получать информацию о отсылке сообщения Kernel.StateChanged
  2 : Send <Responder>    ; Отправляем тестируемому модулю сообщение GetTextFileContent чтобы убедиться, что фильтр работает
    Kernel.System.Io.GetTextFileContent :1
  3 : Receive <Responder> ; Получаем исходящее сообщение из модуля, но не получаем предварительно сообщение о нем, так как мы его отфильтровываем.
    Kernel.System.Io.GetTextFileContent : 1
      Path : ""
  4 : Receive <Responder> ; Получаем сообщение StateChanged от Responder-а и также не получаем предварительное сообщение о его отсылке. Так как и этот тип сообщения фильтруется
    Kernel.StateChanged : 1
  10 : Send <Responder> ; Отправляем сообщение, которое не будет отфильтровано в фильтре сообщения об исходящих
    Kernel.System.ReplaceAll : 1
      Source : "123"
      Pattern : "2"
      Value : "1"
  11 : Receive <Responder> ; Получаем сообщение о том, что было исходящее сообщение
    Kernel.OverHearedMessage : 1
      Message.Kind : <Kernel.System.ReplaceAll>
      Message.Source : "123"
      Message.Pattern : "2"
      Message.Value : "1"
  12 : Receive <Responder> ; Получаем само сообщение и верифицируем параметры
    Kernel.System.ReplaceAll : 1
      Source : "123"
      Pattern : "2"
      Value : "1"
  13 : Skip <1> ; Пропускаем сообщение State changed

html> /html>