isCompatible
クラス: matlab.unittest.fixtures.Fixture
名前空間: matlab.unittest.fixtures
2 つのフィクスチャに互換性があるかどうかを判別
説明
tf = isCompatible(
は、2 つのフィクスチャの互換性をテスト フレームワークにレポートします。フィクスチャに互換性がある場合、メソッドは logical fixture
1,fixture
2)1
(true
) を返します。その他の場合は logical 0
(false
) を返します。2 つのフィクスチャのクラスが同じで、環境に対する変更も同じである場合、それらには互換性があります。
構成可能なフィクスチャの場合 (たとえば、そのクラス コンストラクターが入力引数を受け入れる場合)、Fixture
サブクラスで isCompatible
メソッドを実装します。フレームワークは isCompatible
を呼び出して、同じ Fixture
サブクラスのインスタンスが同一の共有テスト フィクスチャの状態と対応しているかどうかを判別します。フィクスチャの互換性に関する情報は、フレームワークで破棄アクションやセットアップ アクションを実行するタイミングを決めるのに役立ちます。フレームワークは同じクラスの 2 つのインスタンスでのみ isCompatible
メソッドを呼び出すため、フィクスチャのクラスが異なるケースについて処理するコードを実装する必要はありません。
入力引数
fixture
— フィクスチャ
matlab.unittest.fixtures.Fixture
オブジェクト
フィクスチャ。matlab.unittest.fixtures.Fixture
オブジェクトとして指定します。
例
構成可能なフィクスチャの互換性
数値の出力表示形式を変更する構成可能なフィクスチャを作成します。構成可能なフィクスチャを定義するクラスでは、setup
メソッドに加えて isCompatible
メソッドを実装しなければなりません。
現在のフォルダー内の NumericFormatFixture.m
という名前のファイルで、matlab.unittest.fixtures.Fixture
インターフェイスをサブクラス化して NumericFormatFixture
クラスを作成します。次の要素をクラスに追加します。
Format
プロパティ — このプロパティを追加して、フィクスチャの構築時に指定された数値形式を格納します。NumericFormatFixture
メソッド — このコンストラクター メソッドを追加して、Format
プロパティを設定します。setup
メソッド — このメソッドを実装して、フィクスチャによって出力表示形式が指定の数値形式に変更されるようにします。テスト フレームワークでフィクスチャを破棄するときに環境を復元するには、setup
メソッド内でaddTeardown
メソッドを呼び出します。isCompatible
メソッド — このメソッドを実装して、NumericFormatFixture
インスタンスが共有テスト フィクスチャとして使用される場合に、それらの互換性をテスト フレームワークでテストできるようにします。
classdef NumericFormatFixture < matlab.unittest.fixtures.Fixture properties (SetAccess=immutable) Format (1,1) string end methods function fixture = NumericFormatFixture(fmt) fixture.Format = fmt; end function setup(fixture) originalFormat = format; fixture.addTeardown(@format,originalFormat) format(fixture.Format) fixture.SetupDescription = "Set the numeric format to " + ... fixture.Format + "."; fixture.TeardownDescription = ... "Restored the numeric format to " + ... originalFormat.NumericFormat + "."; end end methods (Access=protected) function tf = isCompatible(fixture1,fixture2) tf = fixture1.Format == fixture2.Format; end end end
現在のフォルダーで、NumericFormatFixture
のインスタンスを共有テスト フィクスチャとしてそれぞれ使用する 3 つのテスト クラスを作成します。それぞれのクラスで、数値が共有テスト フィクスチャで適用される形式で表示されるかどうかをテストします。この例では、簡略化するために、関数 formattedDisplayText
の呼び出しで実際の値を生成しています。実際には、ユーザー定義のコードをテストします。
TestA.m
という名前のファイルに、TestA
クラスを作成します。
classdef (SharedTestFixtures={NumericFormatFixture("bank")}) ... TestA < matlab.unittest.TestCase methods (Test) function formatTest(testCase) actual = strtrim(formattedDisplayText(pi)); expected = "3.14"; testCase.verifyEqual(actual,expected) end end end
TestB.m
という名前のファイルに、TestB
クラスを作成します。
classdef (SharedTestFixtures={NumericFormatFixture("bank")}) ... TestB < matlab.unittest.TestCase methods (Test) function formatTest(testCase) actual = strtrim(formattedDisplayText(100/3)); expected = "33.33"; testCase.verifyEqual(actual,expected) end end end
TestC.m
という名前のファイルに、TestC
クラスを作成します。
classdef (SharedTestFixtures={NumericFormatFixture("hex")}) ... TestC < matlab.unittest.TestCase methods (Test) function formatTest(testCase) actual = strtrim(formattedDisplayText(1)); expected = "3ff0000000000000"; testCase.verifyEqual(actual,expected) end end end
TestA
クラスと TestB
クラスには、環境に対して同じ変更を加える共有フィクスチャが割り当てられています。一方、TestC
クラスには、別の数値形式を適用するフィクスチャが割り当てられています。この例では、isCompatible
メソッドの実装に従って、テスト フレームワークは TestA
と TestB
のフィクスチャに互換性があると判定します。一方、TestC
のフィクスチャについては、他のフィクスチャと互換性がないと判定されます。
フィクスチャの互換性に関する情報は、フレームワークで破棄アクションやセットアップ アクションを実行するタイミングを決めるのに役立ちます。TestA
、TestB
、および TestC
を同じテスト スイートの一部として実行する場合、TestA
から TestB
に切り替えるときは、両方のクラスで必要とされる環境が同じであるため、フレームワークでフィクスチャが破棄されません。一方、TestB
から TestC
に切り替えるときは、フレームワークで既存のフィクスチャが破棄され、TestC
に必要な新しいフィクスチャがセットアップされます。この例では、すべてのテストがパスします。
runtests(["TestA" "TestB" "TestC"]);
Setting up NumericFormatFixture Done setting up NumericFormatFixture: Set the numeric format to bank. __________ Running TestA . Done TestA __________ Running TestB . Done TestB __________ Tearing down NumericFormatFixture Done tearing down NumericFormatFixture: Restored the numeric format to short. __________ Setting up NumericFormatFixture Done setting up NumericFormatFixture: Set the numeric format to hex. __________ Running TestC . Done TestC __________ Tearing down NumericFormatFixture Done tearing down NumericFormatFixture: Restored the numeric format to short. __________
バージョン履歴
R2014a で導入
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)