matlab.mock.actions.ThrowException class

Пакет: matlab.mock.actions

Выдайте исключение, когда метод называется или когда свойство установлено или получено доступ

Описание

Чтобы указать, что среда выдает исключение, когда метод фиктивного объекта вызывается или когда свойство фиктивного объекта установлено или получено доступ, используйте ThrowException класс. Можно использовать это действие, чтобы ввести состояние ошибки в систему под тестом.

Конструкция

action = ThrowException выдает исключение, когда метод называется, или свойство установлено или получено доступ.

action = ThrowException(exception) задает исключение, которое выдает макет.

Входные параметры

развернуть все

Исключение для среды, чтобы выдать в вызове метода или взаимодействии свойства в виде скалярного MException объект.

Пример: MException('MyProduct:myID','My exception message.')

Методы

повторениеПовторите исключение выдачи
затемДействие для взаимодействия фиктивного объекта или действие, последующее за выдачей исключения

Примеры

свернуть все

Создайте макет для класса банковского счета.

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock('AddedMethods',"deposit");

Настройте поведение.

import matlab.mock.actions.ThrowException;
import matlab.unittest.constraints.IsLessThan;
when(behavior.deposit(IsLessThan(0)), ...
    ThrowException(MException('Account:deposit:Negative', ...
    'Deposit amount must be positive.')));

Используйте макет.

mock.deposit(10)
mock.deposit(-10)
Error using matlab.mock.internal.MockContext>mockMethodCallback (line 663)
Deposit amount must be positive.

Error in matlab.mock.internal.MockContext>@(data)mockMethodCallback(data,catalog) (line 282)
            methodCallback = @(data)mockMethodCallback(data, catalog);

Альтернативы

Для простого определения выходных параметров можно использовать throwExceptionWhen метод matlab.mock.TestCase класс. Однако существует больше функциональности, когда вы используете ThrowException действие.

Введенный в R2017a

Для просмотра документации необходимо авторизоваться на сайте