Main Content

then

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

mock 对象交互触发的动作,或者是接在存储属性值后的动作

语法

then(action1)
then(action1,action2)

说明

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

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

输入参数

全部展开

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

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

示例: action2 = DoNothing

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

示例

全部展开

为 bank account 类创建一个 mock。

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

指定其行为。允许 IsOpen 属性设置一次,然后引发异常。

import matlab.mock.actions.StoreValue
import matlab.mock.actions.ThrowException
when(set(behavior.IsOpen),StoreValue().then(ThrowException( ...
    MException('Account:setValue:tooMany','Value set too many times.'))))

使用 mock。

mock.IsOpen = false
mock = 

  Mock with properties:

    IsOpen: 0
mock.IsOpen = true
Error using matlab.mock.internal.MockContext/createMockObject/mockPropertySetCallback (line 429)
Value set too many times.

提示

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

版本历史记录

在 R2017a 中推出