then

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

Действие для взаимодействия с объектом mock или действие после вызова указателя на функцию

Синтаксис

then(action1)
then(action1,action2)

Описание

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

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

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

расширить все

Определенное действие, заданное как образец matlab.mock.actions.Invoke.

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

Примеры

расширить все

Создайте макет для класса, который представляет 6-стороннюю матрицу, включая издевательскую roll способ.

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

Настройте поведение roll способ. Возвращает 0 при первом запуске. При последующих запусках активируйте randi функция для возврата случайного целого числа от 1 до 6.

import matlab.mock.actions.AssignOutputs
import matlab.mock.actions.Invoke
when(withExactInputs(behavior.roll), ...
    AssignOutputs(0).then(Invoke(@(~)randi(6))))

Вызовите издевавшуюся roll способ трижды.

val = mock.roll
val = 0
val = mock.roll
val = 5
val = mock.roll
val = 6

Совет

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

Введенный в R2018b