Main Content

基本的なカスタム フィクスチャの作成

この例では、表示形式を 16 進数表現に変更する基本的なカスタム フィクスチャを作成する方法を説明します。また、この例では、フィクスチャを使用して数値の列をテキストとして表示する関数をテストする方法についても説明します。テストが完了すると、フレームワークは表示形式をテスト前の状態に戻します。

FormatHexFixture クラスの定義の作成

作業フォルダー内のあるファイルに matlab.unittest.fixtures.Fixture クラスから継承される新しいクラス FormatHexFixture を作成します。MATLAB® 表示形式のテスト前の状態にフィクスチャを戻すために、OriginalFormat プロパティを作成し、元の表示形式を記録します。

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture
    properties (Access = private)
        OriginalFormat
    end
end

setup メソッドと teardown メソッドの実装

Fixture クラスのサブクラスは、setup メソッドを実装しなければなりません。このメソッドを使用してテスト前の表示形式を記録し、形式を 'hex' に設定します。teardown メソッドを使用して、元の表示形式を復元します。FormatHexFixture クラスの methods ブロックで setup メソッドおよび teardown メソッドを定義します。

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture
    properties (Access = private)
        OriginalFormat
    end
    methods
        function setup(fixture)
            fixture.OriginalFormat = format;
            format hex
        end
        function teardown(fixture)
            format(fixture.OriginalFormat)
        end
    end
end

カスタム フィクスチャの適用

作業フォルダーのファイルにテスト クラス SampleTest.m を作成します。

classdef SampleTest < matlab.unittest.TestCase
    methods (Test)
        function test1(testCase)
            testCase.applyFixture(FormatHexFixture)
            actStr = getColumnForDisplay([1;2;3],'Small Integers');
            expStr = ['Small Integers  '
                '3ff0000000000000'
                '4000000000000000'
                '4008000000000000'];
            testCase.verifyEqual(actStr,expStr)
        end
    end
end

function str = getColumnForDisplay(values,title)
elements = cell(numel(values)+1,1);
elements{1} = title;
for idx = 1:numel(values)
    elements{idx+1} = displayNumber(values(idx));
end
str = char(elements);
end

function str = displayNumber(n)
str = strtrim(evalc('disp(n);'));
end

このテストはカスタム フィクスチャを適用し、表示された 16 進数表現の列が予想どおりであることを確認します。

コマンド プロンプトで、テストを実行します。

run(SampleTest);
Running SampleTest
.
Done SampleTest
__________

参考

関連するトピック