Main Content

matlab.mock.constraints.WasCalled クラス

パッケージ: matlab.mock.constraints

メソッドの呼び出しを決定する制約

説明

WasCalled 制約は、実際の値が MethodCallBehavior インスタンスでない場合、または MethodCallBehavior に対応するメソッドが指定された回数呼び出されていない場合に、検定エラーを生成します。

構築

constraint = WasCalled はメソッドの呼び出しを判別する制約を提供します。メソッドが 1 回以上呼び出されると、この制約は満たされます。メソッドが呼び出されていないことを検定するには、チルダ (~) 演算子を使用して WasCalled 制約を否定します。

constraint = WasCalled('WithCount',n) は、メソッドが厳密に n 回呼び出された場合に満たされる制約を提供します。

この構文で WasCalled を否定すると、メソッドが厳密に n 回呼び出されていない場合にこの制約が満たされます。たとえば、メソッドが 4 回呼び出された場合、~WasCalled('WithCount',3) はパスし、~WasCalled('WithCount',4) は失敗します。

入力引数

すべて展開する

メソッドの呼び出し数。整数として指定します。

プロパティ

すべて展開する

メソッドの呼び出し回数。整数として返されます。このプロパティは読み取り専用です。これは制約の作成時に指定できます。

コピーのセマンティクス

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

すべて折りたたむ

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

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

モック アカウントを使用します。

fakeAccount.deposit(10);
fakeAccount.deposit(20);
fakeAccount.deposit(10);

パスのケースを作成します。

import matlab.mock.constraints.WasCalled
testCase.verifyThat(behavior.deposit(10),WasCalled)
Interactive verification passed.
testCase.verifyThat(behavior.deposit(10),WasCalled('WithCount',2))
Interactive verification passed.
import matlab.unittest.constraints.IsGreaterThan
testCase.verifyThat(behavior.deposit(IsGreaterThan(100)),~WasCalled)
Interactive verification passed.

失敗のケースを作成します。

testCase.verifyThat(behavior.deposit(100),WasCalled);
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasCalled failed.
--> Method 'deposit' was not called with the specified signature.
--> Observed method call(s) with any signature:
        deposit([1×1 matlab.mock.classes.Mock], 10)
        deposit([1×1 matlab.mock.classes.Mock], 20)
        deposit([1×1 matlab.mock.classes.Mock], 10)

Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock>, 100)
testCase.verifyThat(behavior.deposit(20),WasCalled('WithCount',2))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasCalled failed.
--> Method 'deposit' was not called the expected number of times with the specified signature.
    
    Actual method call count:
             1
    Expected method call count:
             2
--> Observed method call(s) with any signature:
        deposit([1×1 matlab.mock.classes.Mock], 10)
        deposit([1×1 matlab.mock.classes.Mock], 20)
        deposit([1×1 matlab.mock.classes.Mock], 10)

Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock, 20)
testCase.verifyThat(behavior.deposit(IsGreaterThan(50)),WasCalled)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasCalled failed.
--> Method 'deposit' was not called with the specified signature.
--> Observed method call(s) with any signature:
        deposit([1×1 matlab.mock.classes.Mock], 10)
        deposit([1×1 matlab.mock.classes.Mock], 20)
        deposit([1×1 matlab.mock.classes.Mock], 10)

Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock>, <IsGreaterThan constraint>)

バージョン履歴

R2017a で導入