이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

matlab.unittest.constraints.Eventually 클래스

패키지: matlab.unittest.constraints
슈퍼클래스: matlab.unittest.constraints.Constraint

값이 제약 조건을 비동기식으로 충족하도록 폴링

생성

outConstObj = Eventually(constObj)는 함수 핸들에서 반환된 실제 값이 constObj 제약 조건을 비동기적으로 충족하도록 폴링하는 제약 조건 outConstObj를 만듭니다. 이 제약 조건은 함수 핸들 실행 후 20초 내에 제약 조건을 충족하는 값을 생성하지 않는 경우 충족되지 않습니다. 지정된 함수가 제약 조건을 충족할 때까지 Eventually 제약 조건이 대기하는 한편, 테스트 프레임워크는 drawnow 함수를 불러옵니다.

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.

toc이 통과 값에 도달하는지 확인하는 데에는 최대 10초까지 소요될 수 있습니다. tic을 호출하고 verifyThat 명령을 실행하기 전에 10초 넘게 대기하는 경우 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

경과 시간이 0보다 작을 순 없으므로 이 실패는 예상된 결과입니다. 그러나 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

tic 호출과 verifyThat 호출 사이에 5초 넘게 대기하지 않았다면 수정된 제한 시간 내에 경과 시간이 10초를 초과하지 않으므로 테스트의 결과는 실패입니다.