exponenta event banner

matlab.unittest.constraints.В конечном итоге класс

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.Constraint

Опрос значения для асинхронного соответствия ограничению

Строительство

outConstObj = Eventually(constObj) создает зависимость, outConstObj, который опрашивает фактическое значение, возвращенное дескриптором функции для асинхронного удовлетворения constObj ограничение. Оно не удовлетворяется, если оценка дескриптора функции не приводит к значению, удовлетворяющему ограничению в течение 20 секунд. Структура тестирования вызывает drawnow в то время как Eventually ограничение ожидает выполнения указанной функции в соответствии с этим ограничением.

outConstObj = Eventually(constObj,'WithTimeoutOf',timeOutVal) создает ограничение, которое опрашивает, чтобы ограничение было удовлетворено в течение периода таймера, указанного в timeOutVal.

Входные аргументы

constObj

Constraint случай

timeOutVal

Максимальное время для попытки создания поведения прохождения, указанное в секундах

По умолчанию: 20 секунды

Свойства

FinalReturnValue

Выходные данные выдаются, когда тестовый фреймворк вызывает предоставленный дескриптор функции. Это свойство доступно только для чтения и устанавливается, когда среда тестирования вызывает дескриптор функции.

Timeout

Максимальное время для попытки создания поведения прохождения, указанное параметром timeOutVal входной аргумент

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте тестовый пример для интерактивного тестирования.

import matlab.unittest.TestCase
import matlab.unittest.constraints.Eventually
import matlab.unittest.constraints.IsGreaterThan
import matlab.unittest.constraints.IsLessThan

testCase = TestCase.forInteractiveUse;

Убедитесь, что в течение периода тайм-аута вызов toc приводит к значению, превышающему 10 (секунд). Eventually ограничение многократно вызывает toc до тех пор, пока ограничение не будет выполнено или истекшее время не превысит период тайм-аута. Повторные вызовы toc результат - время, прошедшее с момента последнего вызова tic.

tic
testCase.verifyThat(@toc, Eventually(IsGreaterThan(10)))
Interactive verification passed.

Проверка может занять до 10 секунд. toc для достижения проходного значения. При вызове tic и подождите более 10 секунд перед выдачей verifyThat команда, верификация возвращается немедленно с toc уже возвращает значение больше 10.

Убедитесь, что в течение периода ожидания toc не возвращает отрицательное значение.

testCase.verifyThat(@toc, Eventually(IsLessThan(0)))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
Eventually failed.
--> The constraint never passed with a timeout of 20 second(s).
--> IsLessThan failed.
    --> The value must be less than the maximum value.
    
    Actual Value:
      36.532254706346720
    Maximum Value (Exclusive):
         0

Evaluated Function:
  function_handle with value:

    @toc

Этот сбой ожидается, так как прошедшее время не должно быть меньше нуля. Однако Eventually опросы toc на период тайм-аута.

Настройте период тайм-аута таким образом Eventually опросы в течение 5 секунд.

tic
testCase.verifyThat(@toc, Eventually(IsGreaterThan(10), ...
    'WithTimeoutOf', 5))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
Eventually failed.
--> The constraint never passed with a timeout of 5 second(s).
--> IsGreaterThan failed.
    --> The value must be greater than the minimum value.
    
    Actual Value:
       5.143138452046230
    Minimum Value (Exclusive):
        10

Evaluated Function:
  function_handle with value:

    @toc

Если вы не ожидали более 5 секунд между звонками в tic и verifyThat, тест завершается неуспешно, поскольку истекшее время не превышает 10 секунд в течение измененного периода времени ожидания.