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