Оцените симуляцию модели Используя операторы verify

Можно проверить симуляцию модели включением блока Test Assessment в модели или тестовой обвязке и авторской разработке операторов verify в блоке Test Assessment. операторы verify возвращают pass, fail или результаты untested и для полной симуляции и для отдельных временных шагов. Результаты появляются в менеджере по Тесту.

Активируйте операторы verify в тестовом блоке оценки

Тестовая Оценка содержит последовательность разложения When. Последовательность разложения When помогает вам ясно задать условие симуляции, которое активирует каждый оператор verify:

  1. Если ваша модель использует источник блока Test Sequence, рассмотрите активацию каждого оператора verify с помощью активного шага блока Test Sequence.

  2. Если ваша модель не использует источник блока Test Sequence, или ваши тестовые шаги последовательности не соответствуют условиям проверить, активировать каждый оператор verify с помощью условия сигнала.

Активируйте операторы verify тестовыми шагами последовательности

Соедините блок Test Sequence и Test Assessment с активным сигналом шага от блока Test Sequence. Активируйте каждый оператор verify активным шагом.

Например, эта тестовая обвязка содержит блок Test Sequence и Test Assessment. Блоки соединяются сигналом Active_Step.

Блок Test Assessment содержит последовательность разложения When с четырьмя подшагами. Каждый содержит оператор verify и активируется различным шагом блока Test Sequence.

Чтобы активироваться проверяют, что операторы в Тестовой Оценке с активными шагами в Тестовой Последовательности блокируются:

  1. Создайте активный вывод данных шага для блока Test Sequence:

    1. Выберите блок Test Sequence.

    2. Создайте новый перечислимый вывод данных. В Property Inspector выберите Create data to monitor the active step.

    3. Назовите перечисление.

  2. Создайте ввод данных для блока Test Assessment:

    1. Откройте блок Test Assessment.

    2. На боковой панели Symbols, рядом с Input, кликают по значку Add data.

    3. Назовите вход.

  3. В блок-схеме соедините блок Test Sequence вывод с входом блока Test Assessment.

  4. Создайте последовательность разложения When в блоке Test Assessment.

    1. Блок Test Assessment сконфигурирован по умолчанию с последовательностью разложения When. Чтобы измениться между стандартной последовательностью и последовательностью разложения When, щелкните правой кнопкой по родительскому шагу и выберите When decomposition.

    2. Для каждого шага разложения When задайте, когда шаг будет активен при помощи активных данных о перечислении шага. Например:

      VerifyBoth when TSActiveStepIN == TSActiveStepEnum.PressBothButtons

    3. Добавьте операторы verify в каждый шаг оценки.

Активируйте операторы verify условиями сигнала

Если ваша модель не использует источник блока Test Sequence, или если Тестовые шаги Последовательности не соответствуют условиям проверить, используйте уникальные условия сигнала активировать операторы verify. Поместите операторы verify в последовательность разложения When и используйте условные операторы в условиях When.

Например, эта тестовая обвязка использует вход блока Signal Builder.

Блок Test Assessment содержит последовательность разложения When. Каждый подшаг содержит оператор verify. Уникальное условие сигнала активирует каждый подшаг.

Автор операторы verify

Операторы verify выполняют логические выражения. Можно маркировать результаты в менеджере по Тесту с дополнительными аргументами.

Оператор verify возвращает pass, fail или результат untested для каждого временного шага и для полной симуляции. fail в любое время продвигается результаты в полный fail. Если нет никаких провальных результатов, pass в любое время продвигаются результаты в полный pass. В противном случае полным результатом является untested. Результаты появляются в разделе Verify Statements результатов испытаний.

Синтаксис

Операторы verify используют синтаксис:

verify(expression)
verify(expression,errorMessage)
verify(expression,identifier,errorMessage)

где expression является логическим выражением. Используйте дополнительные аргументы, чтобы задать errorMessage и оператор identifier. Сообщения об ошибке отображаются в диагностическом средстве просмотра. Можно использовать сообщения об ошибке, чтобы отобразить значения ключа в то время сбои оператора.

Например, если verify выполняет выражение, содержащее переменные x и y, можно отобразить значения x и y с помощью строки:

'x and y values are %d, %d',x,y

Идентификатор маркирует результаты verify в менеджере по Тесту. Идентификатор использует строку формы 'prefix:suffix'. prefix и suffix являются алфавитно-цифровыми строками. Например:

'SimulinkTest:x_equals_y'

Факторы оператора verify

  • verify не поддержан в Тестовых блоках Последовательности, которые используют непрерывно-разовое обновление. Тестовые данные о блоке Sequence могут зависеть от факторов, таких как время шага решателя. Непрерывно-разовое обновление может вызвать различия в том, когда данные о блоке и обновление операторов verify, которое может привести к неожиданным результатам оператора verify.

    Если ваша модель использует непрерывное время, и вы используете операторы verify в блоке Test Sequence или Test Assessment, рассматриваете явным образом установку дискретного шага расчета блока.

  • Если вы используете параллельное выполнение теста, чтобы запустить ваши тесты, то вы не можете использовать кнопку Highlight in Model для результатов verify.

Пример

В этом сравнении двух значений родительский шаг использует операторы verify, чтобы оценить две локальных переменные x и y во время симуляции.

  • verify(x >= y) передает в целом, потому что это верно для целой тестовой последовательности.

  • verify(x == y) и verify(x ~= y) перестали работать, потому что они перестали работать в step_1_2 и step_1_1, соответственно.

Менеджер по Тесту отображает результаты:

Смотрите также

| |

Похожие темы