Main Content

then

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

mock 对象交互触发的动作,或者是接在 DoNothing 后的动作

自 R2020a 起

说明

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

示例

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

输入参数

全部展开

定义的动作,指定为 matlab.mock.actions.DoNothing 对象。

示例: action1 = DoNothing

第二个定义的动作,指定为 matlab.mock.actions.AssignOutputsmatlab.mock.actions.Invokematlab.mock.actions.StoreValuematlab.mock.actions.ThrowException 对象。

示例: action2 = AssignOutputs(7,13,42)

示例: action2 = ThrowException

示例

全部展开

为 bank account 类创建一个 mock。

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。方法调用不会引起任何动作。

mock.deposit(100)

再次调用 mock 方法。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 中推出