then

Класс: matlab.mock.actions.DoNothing
Пакет: matlab.mock.actions

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

Описание

then(action1) задает действие для взаимодействий фиктивного объекта.

пример

then(action1,action2) задает действие и последующее действие для взаимодействий фиктивного объекта.

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

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

Заданное действие в виде matlab.mock.actions.DoNothing объект.

Пример: DoNothing

Второе заданное действие в виде matlab.mock.actions.AssignOutputs, matlab.mock.actions.Invoke, matlab.mock.actions.StoreValue, или matlab.mock.actions.ThrowException объект.

Пример: AssignOutputs(7,13,42)

Пример: ThrowException

Примеры

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

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

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

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

import matlab.mock.actions.DoNothing
import matlab.mock.actions.ThrowException
when(withAnyInputs(behavior.deposit),DoNothing().then(ThrowException))

Используйте макет. Вызов метода не приводит ни к какому действию.

mock.deposit(100)

Вызовите ложный метод во второй раз. MATLAB® выдает ошибку.

mock.deposit(100)
Error using matlab.mock.internal.MockContext/createMockObject/mockMethodCallback (line 382)
The following method call was specified to throw an exception:
	deposit([1×1 matlab.mock.classes.Mock], 100)

Советы

Каждый вызов then принимает до двух действий. Чтобы задать больше последующих действий, используйте множественные вызовы then. Например, чтобы задать три действия, используйте action1.then(action2).then(action3).

Введенный в R2020a