exponenta event banner

throwExceptionWhen

Класс: matlab.mock.StartCase
Пакет: 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 функционально эквивалентен использованию matlab.mock.actions.ThrowException действие с помощью when способ MethodCallBehavior, PropertyGetBehavior, или PropertySetBehavior класс. Например, следующие кодовые блоки функционально эквивалентны.

% 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