基本的なカスタム フィクスチャの作成
この例では、表示形式を 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 __________
参考
matlab.unittest.fixtures.Fixture