メインコンテンツ

then

クラス: matlab.mock.actions.Invoke
名前空間: matlab.mock.actions

モック オブジェクトの相互作用のアクション、または関数ハンドルの呼び出しの後のアクション

構文

then(action1)
then(action1,action2)

説明

then(action1) は、モック オブジェクトの相互作用のアクションを指定します。

then(action1,action2) は、モック オブジェクトの相互作用のアクションとその次のアクションを指定します。

入力引数

すべて展開する

定義済みのアクション。matlab.mock.actions.Invoke のインスタンスとして指定します。

2 番目の定義済みのアクション。matlab.mock.actions.Invokematlab.mock.actions.AssignOutputsmatlab.mock.actions.DoNothing、または matlab.mock.actions.ThrowException のインスタンスとして指定します。

すべて展開する

6 面サイコロを表し、モックされた roll メソッドを含むクラスのモックを作成します。

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

roll メソッドの動作を設定します。最初の実行時には 0 を返します。その後の実行時には、関数 randi を呼び出して 1 ~ 6 のランダムな整数を返します。

import matlab.mock.actions.AssignOutputs
import matlab.mock.actions.Invoke
when(withExactInputs(behavior.roll), ...
    AssignOutputs(0).then(Invoke(@(~)randi(6))))

モックされた roll メソッドを 3 回呼び出します。

val = mock.roll
val = 0
val = mock.roll
val = 5
val = mock.roll
val = 6

ヒント

  • then の呼び出しはそれぞれ最大 2 つのアクションを受け入れます。後続のアクションをさらに多く指定するには、then を複数回呼び出します。たとえば、3 つのアクションを指定するには action1.then(action2).then(action3) を使用します。

バージョン履歴

R2018b で導入