throwExceptionWhen

Класс: matlab.mock.
Пакет: 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