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 секунд в измененный период тайм-аута.

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

|