Main Content

matlab.mock.TestCase クラス

名前空間: matlab.mock
スーパークラス: matlab.unittest.TestCase

モッキング フレームワークを使用するテストを記述するためのクラス

説明

matlab.mock.TestCase クラスを使用して、モッキング フレームワークを使用するテストを記述できます。matlab.mock.TestCase クラスは matlab.unittest.TestCase クラスから派生したものであるため、テストでは、検定、フィクスチャ、およびプラグインなどのユニット テスト フレームワークの機能にアクセスできます。テストでの依存関係のモックの詳細については、モック オブジェクトの作成を参照してください。

matlab.mock.TestCase クラスは handle クラスです。

クラスの属性

抽象型
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

ほとんどの場合、matlab.mock.TestCase クラスのインスタンスを直接作成する必要はありません。テストの実行時に、モッキング フレームワークで matlab.mock.TestCase インスタンスが自動的に作成されます。

コマンド ラインでの対話型のテスト用に matlab.mock.TestCase インスタンスを作成するには、静的メソッド forInteractiveUse を使用します。

メソッド

すべて展開する

すべて折りたたむ

モックを作成し、matlab.mock.TestCase クラスを使用してモックとの相互作用をテストします。

最初に、この例で使用するクラスをインポートします。

import matlab.mock.TestCase
import matlab.unittest.constraints.IsLessThan

対話型テスト用にテスト ケースを作成します。

testCase = TestCase.forInteractiveUse;

2 つのメソッドをもつ銀行口座クラスのモックを作成します。

[mock,behavior] = testCase.createMock("AddedMethods",["deposit" "isOpen"]);

動作を設定します。deposit モック メソッドが負の入力で呼び出されたときにエラーをスローします。

testCase.throwExceptionWhen(behavior.deposit(IsLessThan(0)), ...
    MException("Account:deposit:Negative", ...
    "Deposit amount must be positive."))

モックを使用して正の入力で deposit を呼び出します。

mock.deposit(100)

指定した入力で deposit メソッドが呼び出されたことを確認します。

testCase.verifyCalled(behavior.deposit(100))
Verification passed.

メソッドが入力値 50 で呼び出されたかどうかをテストします。テストは失敗します。

testCase.verifyCalled(behavior.deposit(50))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyCalled failed.
    --> Method 'deposit' was not called with the specified signature.
    --> All observed method call(s) with any signature are:
            deposit([1×1 matlab.mock.classes.Mock], 100)
    
    Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock>, 50)

deposit が負の入力で呼び出されていないことを確認します。

testCase.verifyNotCalled(behavior.deposit(IsLessThan(0)))
Verification passed.

isOpen メソッドが少なくとも 1 回はモック オブジェクトを唯一の入力として呼び出されたかどうかをテストします。テストは失敗します。

testCase.verifyCalled(withExactInputs(behavior.isOpen))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyCalled failed.
    --> Method 'isOpen' was never called.
    
    Specified method call:
    MethodCallBehavior
        [...] = isOpen(<Mock>)

matlab.mock.TestCase クラスは matlab.unittest.TestCase クラスおよびそのスーパークラスからメソッドを継承します。継承される verifyError メソッドを使用して、負の入力で deposit メソッドを呼び出したときに、動作の設定時に指定したエラーが発生することを確認します。

testCase.verifyError(@() mock.deposit(-10),"Account:deposit:Negative")
Verification passed.

バージョン履歴

R2017a で導入