matlab.unittest.constraints.Eventually class

Пакет: 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 (секунд). The 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 секунд в течение измененного периода ожидания.