then

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

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

Синтаксис

then(action1)
then(action1,action2)

Описание

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

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),...
    then(AssignOutputs(0),...
        then(Invoke(@(~)randi(6)))))

Вызовите дразнивший roll метод три раза.

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

Советы

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

Введенный в R2018b