Main Content

matlab.mock.TestCase 클래스

네임스페이스: matlab.mock
슈퍼클래스: matlab.unittest.TestCase

모의 프레임워크로 테스트를 작성하기 위한 클래스

설명

matlab.mock.TestCase 클래스를 사용하면 모의 프레임워크를 사용하는 테스트를 작성할 수 있습니다. matlab.mock.TestCase 클래스는 matlab.unittest.TestCase 클래스에서 파생되기 때문에 테스트는 가설 검정(Qualification), 픽스처, 플러그인 같은 단위 테스트 프레임워크 기능에 액세스할 수 있습니다. 테스트에서 종속 컴포넌트를 모방하는 것에 대한 자세한 내용은 모의 객체 생성하기 항목을 참조하십시오.

matlab.mock.TestCase 클래스는 handle 클래스입니다.

클래스 특성

Abstract
true

클래스 특성에 대한 자세한 내용은 클래스 특성 항목을 참조하십시오.

생성

대부분의 경우에는 matlab.mock.TestCase 클래스의 인스턴스를 직접 생성할 필요가 없습니다. 이 모의 프레임워크는 테스트를 실행할 때 matlab.mock.TestCase 인스턴스를 자동으로 생성합니다.

대화형 방식의 명령줄 테스트를 위한 matlab.mock.TestCase 인스턴스를 생성하려면 forInteractiveUse 정적 메서드를 사용하십시오.

메서드

모두 확장

예제

모두 축소

모의 객체를 생성하고 matlab.mock.TestCase 클래스를 사용하여 모의 객체와의 상호 작용을 테스트합니다.

먼저 이 예제에서 사용되는 클래스를 가져옵니다.

import matlab.mock.TestCase
import matlab.unittest.constraints.IsLessThan

대화형 방식 테스트를 위한 테스트 케이스를 생성합니다.

testCase = TestCase.forInteractiveUse;

은행 계좌 클래스에 대한 두 가지 메서드가 있는 모의 객체를 만듭니다.

[mock,behavior] = testCase.createMock("AddedMethods",["deposit" "isOpen"]);

동작을 설정합니다. deposit 모의 메서드가 음수 입력값으로 호출되면 오류를 발생시킵니다.

testCase.throwExceptionWhen(behavior.deposit(IsLessThan(0)), ...
    MException("Account:deposit:Negative", ...
    "Deposit amount must be positive."))

모의 객체를 사용하여 양수 입력값으로 deposit을 호출합니다.

mock.deposit(100)

deposit 메서드가 지정된 입력값으로 호출되었는지 확인합니다.

testCase.verifyCalled(behavior.deposit(100))
Verification passed.

메서드가 입력값 50으로 호출되었는지 테스트합니다. 테스트가 실패합니다.

testCase.verifyCalled(behavior.deposit(50))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyCalled failed.
    --> Method 'deposit' was not called with the specified signature.
    --> All observed method call(s) with any signature are:
            deposit([1×1 matlab.mock.classes.Mock], 100)
    
    Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock>, 50)

deposit이 음수 입력값으로 호출되지 않았는지 확인합니다.

testCase.verifyNotCalled(behavior.deposit(IsLessThan(0)))
Verification passed.

isOpen 메서드가 모의 객체를 유일한 입력값으로 하여 최소 한 번 이상 호출되었는지 테스트합니다. 테스트가 실패합니다.

testCase.verifyCalled(withExactInputs(behavior.isOpen))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyCalled failed.
    --> Method 'isOpen' was never called.
    
    Specified method call:
    MethodCallBehavior
        [...] = isOpen(<Mock>)

matlab.mock.TestCase 클래스는 matlab.unittest.TestCase 클래스와 그 슈퍼클래스로부터 메서드를 상속합니다. 상속된 verifyError 메서드를 사용하여 음수 입력값으로 deposit 메서드를 호출하면 동작을 설정할 때 지정한 오류가 발생하는지 확인합니다.

testCase.verifyError(@() mock.deposit(-10),"Account:deposit:Negative")
Verification passed.

버전 내역

R2017a에 개발됨