メインコンテンツ

matlab.unittest.selectors.HasSuperclass クラス

名前空間: matlab.unittest.selectors
スーパークラス: matlab.unittest.selectors.Selector

テスト スーパークラスに基づいて TestSuite 配列要素を選択する

説明

matlab.unittest.selectors.HasSuperclass クラスは、テスト スーパークラスに基づいてテスト スイートにフィルターを適用するセレクターを提供します。

クラスベースのテストの場合、テスト スーパークラスは、テストを定義するクラスのすべてのスーパークラスです。クラス階層の詳細については、クラスの階層 — 概念を参照してください。

クラスの属性

Sealed
true

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

作成

説明

selector = matlab.unittest.selectors.HasSuperclass(class) は、指定されたテスト スーパークラスをもつ TestSuite 配列要素を選択するセレクターを作成します。

入力引数

すべて展開する

テスト スーパークラス。string スカラーまたは文字ベクトルとして指定します。

すべて折りたたむ

HasSuperclass クラスを使用してテストを選択して、フィルターが適用されたテスト スイートを作成します。テスト コードを簡略化するために、この例のテスト クラスでは、実装していないテスト用のプレースホルダーとして無条件テスト エラーを使用しています。

現在のフォルダー内の MyClass.m という名前のファイルに、MyClass クラスを作成します。

classdef MyClass < handle
    properties
        % Properties of MyClass
    end

    methods
        % Methods of MyClass
    end
end

現在のフォルダー内の Feature1Test.m という名前のファイルで、matlab.unittest.TestCase クラスをサブクラス化して Feature1Test テスト クラスを作成します。

classdef Feature1Test < matlab.unittest.TestCase
    methods (Test)
        function defaultBehavior(testCase)
            testCase.verifyFail("Add code to test default behavior.")
        end
        function otherBehavior(testCase)
            testCase.verifyFail("Add code to test nondefault behavior.")
        end
    end
end

現在のフォルダー内の Feature2Test.m という名前のファイルで、Feature2Test テスト クラスを作成します。このテスト クラスは、matlab.unittest.TestCase クラスに加えて MyClass をサブクラス化します。

classdef Feature2Test < matlab.unittest.TestCase & MyClass
    methods (Test)
        function defaultBehavior(testCase)
            testCase.verifyFail("Add code to test default behavior.")
        end
        function otherBehavior(testCase)
            testCase.verifyFail("Add code to test nondefault behavior.")
        end
    end
end

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

import matlab.unittest.TestSuite
import matlab.unittest.selectors.HasSuperclass

テスト クラスからテスト スイートを作成します。その後、TestSuite 配列要素の名前を表示します。テスト スイートには 4 つのテストが含まれています。

suite = testsuite(["Feature1Test" "Feature2Test"]);
disp({suite.Name}')
    {'Feature1Test/defaultBehavior'}
    {'Feature1Test/otherBehavior'  }
    {'Feature2Test/defaultBehavior'}
    {'Feature2Test/otherBehavior'  }

テスト スーパークラスとして MyClass をもつテストをすべて選択します。Feature2TestMyClass をサブクラス化する唯一のテスト クラスであるため、フィルターが適用されたテスト スイートには、Feature2Test テスト クラスで定義されたテストのみが含まれます。

suite1 = suite.selectIf(HasSuperclass("MyClass"));
disp({suite1.Name}')
    {'Feature2Test/defaultBehavior'}
    {'Feature2Test/otherBehavior'  }

テスト スーパークラスとして MyClass をもつテストのみを含めることにより、現在のフォルダー内のテストからフィルターが適用されたテスト スイートを直接作成します。

suite2 = TestSuite.fromFolder(pwd,HasSuperclass("MyClass"));
disp({suite2.Name}')
    {'Feature2Test/defaultBehavior'}
    {'Feature2Test/otherBehavior'  }

代替機能

HasSuperclass クラスに加えて、名前と値の引数 Superclass を使用して、テスト スーパークラスに基づいてフィルターが適用されたテスト スイートを作成できます。以下に例を示します。

filteredSuite = matlab.unittest.TestSuite.fromFolder(pwd, ...
    "Superclass","MyClass");

runtests 関数または runperf 関数の名前と値の引数 Superclass を使用してテストを選択して実行することもできます。以下に例を示します。

results = runtests(pwd,"Superclass","MyClass");

バージョン履歴

R2018a で導入