matlab.mock.TestCase クラス
名前空間: matlab.mock
スーパークラス: matlab.unittest.TestCase
モッキング フレームワークを使用するテストを記述するためのクラス
説明
matlab.mock.TestCase
クラスを使用して、モッキング フレームワークを使用するテストを記述できます。matlab.mock.TestCase
クラスは matlab.unittest.TestCase
クラスから派生したものであるため、テストでは、検定、フィクスチャ、およびプラグインなどのユニット テスト フレームワークの機能にアクセスできます。テストでの依存関係のモックの詳細については、モック オブジェクトの作成を参照してください。
matlab.mock.TestCase
クラスは handle
クラスです。
作成
ほとんどの場合、matlab.mock.TestCase
クラスのインスタンスを直接作成する必要はありません。テストの実行時に、モッキング フレームワークで matlab.mock.TestCase
インスタンスが自動的に作成されます。
コマンド ラインでの対話型のテスト用に matlab.mock.TestCase
インスタンスを作成するには、静的メソッド forInteractiveUse
を使用します。
メソッド
パブリック メソッド
これらのメソッドに加え、matlab.mock.TestCase
クラスは matlab.unittest.TestCase
クラスおよびそのスーパークラスからメソッドを継承します。
createMock | モック オブジェクトの作成 |
matlab.mock.TestCase.forInteractiveUse | モック オブジェクトを対話型で使用するテスト ケースを作成する |
assignOutputsWhen | メソッドの呼び出しやプロパティへのアクセスに対する戻り値を定義 |
returnStoredValueWhen | プロパティがアクセスされたときに格納された値を返す |
storeValueWhen | プロパティが設定されたときに値を格納する |
throwExceptionWhen | メソッドの呼び出しやプロパティの相互作用に対して例外をスロー |
clearMockHistory | モック オブジェクトの相互作用の履歴をクリア |
getMockHistory | モック オブジェクトの相互作用の履歴を返す |
assertAccessed | プロパティがアクセスされたことをアサート |
assertCalled | 特定の入力値を使用してメソッドが呼び出されたことをアサート |
assertSet | プロパティが設定されたことをアサート |
assertNotAccessed | プロパティがアクセスされていないことをアサート |
assertNotCalled | メソッドが特定の入力値を使用して呼び出されていないことをアサート |
assertNotSet | プロパティが設定されていないことをアサート |
assumeAccessed | プロパティがアクセスされたものと仮定します。 |
assumeCalled | 特定の入力値を使用してメソッドが呼び出されたものと仮定 |
assumeSet | プロパティが設定されたものと仮定 |
assumeNotAccessed | プロパティがアクセスされていないものと仮定 |
assumeNotCalled | メソッドが特定の入力値を使用して呼び出されていないものと仮定 |
assumeNotSet | プロパティが設定されていないものと仮定 |
fatalAssertAccessed | プロパティがアクセスされたことを致命的にアサート |
fatalAssertCalled | 特定の入力値を使用してメソッドが呼び出されたことを致命的にアサート |
fatalAssertSet | プロパティが設定されたことを致命的にアサート |
fatalAssertNotAccessed | プロパティがアクセスされていないことを致命的にアサート |
fatalAssertNotCalled | メソッドが特定の入力値を使用して呼び出されていないことを致命的にアサート |
fatalAssertNotSet | プロパティが設定されていないことを致命的にアサート |
verifyAccessed | プロパティがアクセスされたことを検証 |
verifyCalled | 特定の入力値を使用してメソッドが呼び出されたことを検証 |
verifySet | プロパティが設定されたことを検証 |
verifyNotAccessed | プロパティがアクセスされていないことを検証 |
verifyNotCalled | メソッドが特定の入力値を使用して呼び出されていないことを検証 |
verifyNotSet | プロパティが設定されていないことを検証 |
例
モックを使用したテスト
モックを作成し、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 で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)