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

すべて展開する

銀行口座クラスのモックを作成します。

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)))

モックを使用します。

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

isAccountOpen = logical
   1

isAccountOpen = logical
   0

ヒント

  • アクションを繰り返し、その後に then メソッドを呼び出さない場合、モックは引き続き繰り返しの値を返します。たとえば、次の銀行口座クラスのモックを考えてみます。

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

    プロパティ値 true を返すアクションを 2 回繰り返す場合、次のコードはこのプロパティ値の 3 回目と 4 回目の取得も実行するため、true が全部で 4 回返されることになります。

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

    一方、次のコードは true を 2 回返し、false を 2 回返します。

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

バージョン履歴

R2017a で導入