throwExceptionWhen

Класс: 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 метод функционально эквивалентен использованию 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