Main Content

then

类: matlab.mock.actions.Invoke
命名空间: matlab.mock.actions

mock 对象交互触发的动作,或者是接在调用函数句柄后的动作

语法

then(action1)
then(action1,action2)

说明

then(action1) 指定 mock 对象交互的动作。

then(action1,action2) 指定 mock 对象交互的动作和后续动作。

输入参数

全部展开

定义的动作,指定为 matlab.mock.actions.Invoke 的实例。

第二个定义的动作,指定为 matlab.mock.actions.Invokematlab.mock.actions.AssignOutputsmatlab.mock.actions.DoNothingmatlab.mock.actions.ThrowException 的实例。

示例

全部展开

创建一个 mock,用它来表示一个 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 中推出