Main Content

then

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

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

语法

then(action1)
then(action1,action2)

说明

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

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

输入参数

全部展开

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

示例: action1 = ThrowException

示例: action1 = ThrowException(MException('Account:deposit:Negative','Deposit amount must be positive.'))

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

示例: action2 = ThrowException

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

示例

全部展开

为 bank account 类创建一个 mock。

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

指定其行为。

import matlab.mock.actions.ThrowException
import matlab.mock.actions.AssignOutputs
when(withExactInputs(behavior.isOpen), ...
    ThrowException().then(AssignOutputs(false)))

使用 mock。

isAccountOpen = mock.isOpen

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

使用 mock。

isAccountOpen = mock.isOpen
isAccountOpen =

  logical

   0

提示

  • 每次调用 then 时最多接受两项动作。要指定更多后续动作,请多次调用 then。例如,要指定三项动作,请使用 action1.then(action2).then(action3)

版本历史记录

在 R2017a 中推出