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

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

|