Main Content

repeat

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

重复定义返回值

语法

repeat(action,n)

说明

repeat(action,n) 重复同样的动作 n 次。您可以采用任意顺序指定输入参量。也就是说,repeat(action,n)repeat(n,action) 都重复动作 n 次。

输入参数

全部展开

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

示例: action = AssignOutputs(true)

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

重复动作的次数,指定为整数。

示例: 5

示例

全部展开

为 bank account 类创建一个 mock。

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

指定其行为。

import matlab.mock.actions.AssignOutputs
when(withExactInputs(behavior.isOpen), ...
    AssignOutputs(true).repeat(2).then(AssignOutputs(false)))

使用 mock。

for i = 1:3
    isAccountOpen = mock.isOpen
end
isAccountOpen = logical
   1

isAccountOpen = logical
   1

isAccountOpen = logical
   0

提示

  • 如果您重复执行某一动作,并且随后不调用 then 方法,则该 mock 会继续返回重复的值。例如,请考虑某个银行帐户类的以下 mock。

    import matlab.mock.actions.AssignOutputs
    testCase = matlab.mock.TestCase.forInteractiveUse;
    [mock,behavior] = testCase.createMock('AddedProperties',"IsJointAccount");

    如果您重复执行某项动作以返回属性值 true 两次,以下代码将会继续运行,以便第三次和第四次获取该属性值,因此总共四次返回 true

    when(get(behavior.IsJointAccount),AssignOutputs(true).repeat(2))
    for i = 1:4
        tf = mock.IsJointAccount
    end
    

    但以下代码返回 truefalse 各两次。

    when(get(behavior.IsJointAccount), ...
        AssignOutputs(true).repeat(2).then(AssignOutputs(false)))
    for i = 1:4
        tf = mock.IsJointAccount
    end

版本历史记录

在 R2017a 中推出