Main Content

matlab.mock.AnyArguments クラス

名前空間: matlab.mock

任意の数の引数と一致

説明

モックの動作を指定する場合、またはモックの相互作用を検定する場合に、AnyArguments クラスを使用して任意の数の引数と一致させます。

構築

AnyArguments は引数を一致させます。引数の数は指定なしで無制限です (0 の場合もあります)。モックの動作を定義する場合やモックの相互作用を検定する場合に、引数リストの最後の引数として AnyArguments を指定します。

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

任意の数の引数と一致させます。

import matlab.mock.AnyArguments
import matlab.mock.actions.ThrowException

testCase = matlab.mock.TestCase.forInteractiveUse;

% Create a mock for a bank account class
[saboteurAccount,behavior] = testCase.createMock('AddedMethods',"deposit");

% Define behavior to throw exception with any input argument
when(behavior.deposit(AnyArguments),ThrowException)

% All of the following interactions throw an exception:
saboteurAccount.deposit;
saboteurAccount.deposit(-10);
saboteurAccount.deposit(10);
saboteurAccount.deposit('a','b','c');

代替方法

AnyArguments クラスの機能は、matlab.mock.MethodCallBehavior クラスの withAnyInputs メソッドを使用する場合と同様です。たとえば、次のコード ブロックの機能は同様です。

% Using the AnyArguments class
import matlab.mock.AnyArguments;
testCase.verifyCalled(behavior.myMethod(AnyArguments));

% Using the withAnyInputs method
testCase.verifyCalled(withAnyInputs(behavior.myMethod))
ただし、AnyArguments ではモックが最初の入力引数であることが必要ですが、withAnyInputs ではその必要はありません。MethodCallBehavior には動作の指定や相互作用の記録のための追加メソッドがあります。たとえば、厳密な入力や出力数の指定などです。

バージョン履歴

R2017a で導入