createMock
クラス: matlab.mock.TestCase
名前空間: matlab.mock
モック オブジェクトの作成
構文
[mock,behavior] = createMock(testcase)
[mock,behavior] = createMock(testcase,superclass)
[mock,behavior] = createMock(___,Name,Value)
説明
[
はモック オブジェクトと、関連付けられた behavior オブジェクトを作成します。mock
,behavior
] = createMock(testcase
)
[
は、mock
,behavior
] = createMock(testcase
,superclass
)superclass
クラスから派生するモックを作成します。
[
は、1 つ以上の mock
,behavior
] = createMock(___,Name,Value
)Name,Value
のペア引数で指定された追加オプションをもつモックを作成します。この構文では、前述の構文の引数のいずれかを使用できます。
入力引数
testcase
— テスト ケースのインスタンス
matlab.mock.TestCase
オブジェクト
テスト ケースのインスタンス。matlab.mock.TestCase
オブジェクトとして指定します。
superclass
— モックのスーパークラス
スカラー matlab.metadata.Class
オブジェクト
モックのスーパークラス。スカラー matlab.metadata.Class
オブジェクトとして指定します。モック オブジェクトはこのクラスのすべての抽象プロパティおよびメソッドを実装します。
例: ?MyIterfaceClass
例: ?MException
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
たとえば、[mock,behavior] = testCase.createMock('AddedProperties',{'Prop1','Prop2'})
はモックを作成し、Prop1
および Prop2
プロパティをこのモックに追加します。
AddedMethods
— モックに追加するメソッドの名前
string 配列 | 文字ベクトルの cell 配列
モックに追加するメソッドの名前。string 配列または文字ベクトルの cell 配列として指定します。モックが厳密であるか、モックの動作が定義されている場合を除き、これらのメソッドをモックで呼び出すと空の配列が返されます。
例: ["methodA","methodB","methodC"]
例: {'method1','method2'}
AddedProperties
— モックに追加するプロパティ
string 配列 | 文字ベクトルの cell 配列
モックに追加するプロパティの名前。string 配列または文字ベクトルの cell 配列として指定します。モックが厳密でない場合、その値の設定と取得ができます。一方、モックが厳密である場合、プロパティ値の設定または取得を行うと、既定では MATLAB® はアサーション エラーを生成します。
例: "MyProperty"
例: {'Prop1','Prop2'}
AddedEvents
— モックに追加するイベント
string 配列 | 文字ベクトルの cell 配列
モックに追加するイベントの名前。string 配列または文字ベクトルの cell 配列として指定します。モックにイベントを追加するには、モック オブジェクトはハンドル クラスから派生したものでなければなりません。
例: "MyEvent"
例: {'Event1','Event2'}
DefaultPropertyValues
— 既定のプロパティ値
スカラー struct
既定のプロパティ値。スカラー struct として指定します。この名前と値のペアの引数を使用して、モック オブジェクト クラスによって実装されるプロパティの既定値を指定します。これらのプロパティには、Abstract
スーパークラスのプロパティ、および名前と値のペアの引数 'AddedProperties'
で追加されたプロパティが含まれます。各フィールドはモック クラスに実装されたプロパティの名前を参照し、対応する値はそのプロパティの既定値を表します。
例: struct('PropA',123,'PropB',true)
MockedMethods
— モックするメソッド
可能性のあるすべてのメソッドをモック (既定値) | string.empty
| {}
| string 配列 | cellstr
モックするメソッド。文字ベクトルの string 配列または cell 配列内のメソッド名を使用して指定されます。モックされているメソッドがないことを指定するには、string.empty
、または {}
として指定された空の値を使用します。既定では、すべてのメソッドがモックされます。
MockedMethods
には、追加されたメソッド、抽象スーパークラス メソッド、オーバーライド可能な具象スーパークラス メソッド (false
の値の Sealed
属性) の任意のサブセットを含めることができます。一般には、スタブまたはスパイするメソッドのみを含めます。
MockedMethods
を指定すると、テスト ケースにとって重要なメソッドのみをモックするテストが可能となります。スーパークラスが多くのメソッドを定義する場合に、モックされるメソッドを限定することで、テストのパフォーマンスを向上させることができます。
例: ["foo" "bar"]
データ型: char
| string
| cell
Strict
— モックが厳密であるかどうかを示すインジケーター
false
(既定値) | true
モックが厳密であるかどうかを示すインジケーター。false
または true
として指定します。既定では、動作が定義されていない場合、モック メソッドは空の配列を返します。Strict
を true
に設定すると、フレームワークは以下のものに対して未定義動作によるアサーション エラーを生成します。
指定したインターフェイスのすべての
abstract
メソッドおよびプロパティ。AddedMethods
引数を使用してモックに追加されたメソッド。AddedProperties
引数を使用してモックに追加されたプロパティ。
データ型: logical
ConstructorInputs
— superclass
コンストラクターに渡す入力
値の cell 配列
superclass
コンストラクターに渡す入力。値の cell 配列として指定します。
例: モックを作成して、そのモックで superclass
を ?MException
と定義する場合、'ConstructorInputs'
は {'My:ID','My message'}
などのようになります。
出力引数
mock
— 抽象メソッドおよびプロパティの実装
モック オブジェクト
superclass
入力で指定したインターフェイスの抽象メソッドおよびプロパティの実装。モック オブジェクトとして返されます。モック作成時にスーパークラスが定義されていない場合、明示的なインターフェイスはありません。
メモ: モック オブジェクトの保存と読み込みはできません。
behavior
— モックの動作の定義
behavior オブジェクト
モックの動作の定義。behavior オブジェクトとして返されます。behavior
を使用して、モックのアクションを定義して相互作用を検定します。
メモ: behavior オブジェクトの保存と読み込みはできません。
例
モックの作成
対話型テスト用にテスト ケースを作成します。
testCase = matlab.mock.TestCase.forInteractiveUse;
厳密なモックを作成します。
[mock,behavior] = testCase.createMock('AddedMethods',"foo",'Strict',true);
特定のメソッドを使用してモックを作成します。
[mock,behavior] = testCase.createMock('AddedMethods',... {'one','two','three'});
特定のイベントを使用してモックを作成します。
[mock,behavior] = testCase.createMock(?handle,'AddedEvents',... {'EventA','EventB'});
コンストラクター入力を使用してモックを作成します。
[mock,behavior] = testCase.createMock(?MException,'ConstructorInputs',... {'My:ID','My message'});
2 つのプロパティを使用してモックを作成します。Prop2
は既定値 false
をもちます。
mock = testCase.createMock('AddedProperties',{'Prop1','Prop2'},... 'DefaultPropertyValues',struct('Prop2',false))
mock = Mock with properties: Prop1: [] Prop2: 0
クラス double
の isnan
メソッドおよび isinf
メソッドをオーバーライドするモックを作成します。
[mock,behavior] = testCase.createMock(?double,"MockedMethods",["isnan","isinf"],... "ConstructorInputs",{123});
バージョン履歴
R2017a で導入R2020a: モック オブジェクトへのイベントの追加
ハンドル クラスから派生したモック オブジェクトを作成する際には、プロパティおよびメソッドに加えてイベントをオブジェクトに追加できます。モックするイベントを指定するには、名前と値の引数 AddedEvents
を使用します。
R2019a: モックするメソッドの指定
モックするメソッドを指定するには、名前と値の引数 MockedMethods
を使用します。
R2019a: カスタム メタクラスを使用するクラスのモックを作成
カスタム メタクラスを使用するクラスのモックを作成し、カスタムのクラス、プロパティ、メソッド、およびイベント属性を定義できます。
R2019a: プロパティ検証を使用するクラスのモックを作成
プロパティ検証を使用するクラスのモックを作成できます。プロパティ検証の詳細については、プロパティ値の検証を参照してください。
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)