Main Content

throwExceptionWhen

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

메서드 호출 또는 속성 상호 작용에 대한 예외 발생시키기

구문

throwExceptionWhen(testcase,behavior)
throwExceptionWhen(testcase,behavior,exception)

설명

throwExceptionWhen(testcase,behavior)는 메서드가 호출되거나 속성이 액세스 또는 설정되면 모의 객체가 예외를 발생시키도록 지정합니다.

throwExceptionWhen(testcase,behavior,exception)은 모의 객체가 발생시키는 예외를 지정합니다.

입력 인수

모두 확장

테스트 케이스의 인스턴스로, matlab.mock.TestCase 객체로 지정됩니다.

모의 객체의 동작으로, matlab.mock.MethodCallBehavior, matlab.mock.PropertyGetBehavior 또는 matlab.mock.PropertySetBehavior 인스턴스로 지정됩니다. matlab.mock.MethodCallBehavior의 인스턴스를 만들려면 해당 동작 객체의 메서드를 호출합니다. matlab.mock.PropertyGetBehavior의 인스턴스를 만들려면 동작 객체의 속성에 대해 get 메서드를 호출하십시오. matlab.mock.PropertySetBehavior의 인스턴스를 만들려면 동작 객체의 속성에 대해 set 메서드를 호출하십시오.

예: withExactInputs(behavior.myMockedMethod)

예: get(behavior.MyMockedProperty)

예: set(behavior.MyMockedProperty)

메서드 호출 또는 속성 상호 작용 시 프레임워크가 발생시킬 예외로, 스칼라 MException 객체로 지정됩니다.

예: MException('MyProduct:myID','My exception message.')

예제

모두 확장

메서드가 호출되거나 속성이 액세스 또는 설정되면 예외를 발생시킵니다.

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock('AddedProperties',"PropertyFoo", ...
    'AddedMethods',"methodBar");
testCase.throwExceptionWhen(get(behavior.PropertyFoo));
testCase.throwExceptionWhen(set(behavior.PropertyFoo), ...
    MException('PropertyFoo:set', 'Do not change PropertyFoo'));
testCase.throwExceptionWhen(withAnyInputs(behavior.methodBar));

% Carry out actions
mock.PropertyFoo
mock.PropertyFoo = 123;
mock.methodBar;

대안

throwExceptionWhen 메서드를 사용하는 것은 MethodCallBehavior, PropertyGetBehavior 또는 PropertySetBehavior 클래스의 when 메서드와 함께 matlab.mock.actions.ThrowException 동작을 사용하는 것과 기능적으로 동일합니다. 예를 들어, 다음 코드 블록들은 기능적으로 동일합니다.

% Using the throwExceptionWhen method
testCase.throwExceptionWhen(behavior.deposit(IsLessThan(0)), ...
    MException('Account:deposit:Negative', ...
    'Deposit amount must be positive.'));

% Using the ThrowException action with the when function
import matlab.mock.actions.ThrowException
when(behavior.deposit(IsLessThan(0)),ThrowException( ...
    MException('Account:deposit:Negative', ...
    'Deposit amount must be positive.')))
그러나 ThrowException 동작을 사용하면 추가적인 기능을 사용할 수 있습니다. 예를 들어, 동일한 모의 객체 상호 작용에 대해 다른 후속 동작을 지정할 수 있습니다.

버전 내역

R2017a에 개발됨