このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB でのクラスベースのユニット テストの作成
MATLAB® プログラムをテストするには、検定を使用してユニット テストを作成します。検定とは、値をテストし、エラーに応答するための手法です。
テスト クラスの定義
テスト クラスは、matlab.unittest.TestCase
から継承し、Test
属性をもつ methods
ブロックを含まなければなりません。methods
ブロックには、それぞれがユニット テストである関数が含まれます。汎用の基本的なクラスの定義は次のとおりです。
%% Test Class Definition classdef MyComponentTest < matlab.unittest.TestCase %% Test Method Block methods (Test) % includes unit test functions end end
ユニット テスト
ユニット テストは、1 単位のソフトウェアの正確性を判定するメソッドです。各ユニット テストは methods ブロック内に含まれます。関数は入力として TestCase
インスタンスを受け入れなければなりません。
%% Test Class Definition classdef MyComponentTest < matlab.unittest.TestCase %% Test Method Block methods (Test) %% Test Function function testASolution(testCase) %% Exercise function under test % act = the value from the function under test %% Verify using test qualification % exp = your expected value % testCase.<qualification method>(act,exp); end end end
検定とは、値をテストしてエラーの対応を行う手法のことです。次の表は検定タイプの一覧です。
検証 | この検定を使用して例外をスローせずにエラーを生成して記録します。残りのテストも最後まで実行されます。 | matlab.unittest.qualifications.Verifiable |
仮定 | 特定の前提条件が満たされている場合にのみ検定が実行されることを確認します。ただし、前提条件を満たさずにテストを実行してもテスト エラーは生成されません。仮定エラーが発生すると、テスト フレームワークによってそのテストはフィルター処理済みとマークされます。 | matlab.unittest.qualifications.Assumable |
アサーション | この検定を使用して、現在のテストの前提条件が満たされていることを確認します。 | matlab.unittest.qualifications.Assertable |
致命的なアサーション | アサーションの地点でのエラーによって現在のテスト メソッドの残りが無効になる場合や、状態が回復不能になる場合は、この検定を使用します。 | matlab.unittest.qualifications.FatalAssertable |
MATLAB ユニット テスト フレームワークは、各検定タイプに約 25 個の検定メソッドを提供しています。たとえば、verifyClass
または assertClass
を使用して想定されるクラスの値であることをテストし、assumeTrue
または fatalAssertTrue
を使用して実績値が true であるかどうかをテストします。検定メソッドの概要については、検証、アサーション、その他の検定の表を参照してください。
多くの場合、各ユニット テストの関数は、テストしているコードを実行して実績値を取得し、関連する期待値を定義します。たとえば、関数 plus
をテストしている場合、実績値は plus(2,3)
で期待値は 5
となる場合があります。テスト関数内で、実績値および期待値を検定メソッドに渡します。以下に例を示します。
testCase.verifyEqual(plus(2,3),5)
基本ユニット テストの例は、クラスを使用する単純なテスト ケースの記述を参照してください。
高度なテスト クラスのその他の機能
MATLAB ユニット テスト フレームワークには、より高度なテスト クラスを作成するために次のようないくつかの機能があります。
システムのテスト前の状態を暗黙的にセットアップし、テストの実行後にシステムを元の状態に戻すセットアップ メソッドおよび破棄メソッドのブロック。セットアップ コードおよび破棄コードをもつテスト クラスの例は、クラスを使用するセットアップ コードと破棄コードの記述を参照してください。
実際値のプロキシ、テスト診断および制約インターフェイスなどの高度な検定機能。詳細については、
matlab.unittest.constraints
とmatlab.automation.diagnostics.Diagnostic
を参照してください。指定されたパラメーターのリストでテストを組み合わせて実行するパラメーター化されたテスト。詳細は、基本的なパラメーター化テストの作成と高度なパラメーター化テストの作成を参照してください。
使用頻度の高いテスト アクションのセットアップと破棄を処理する目的、およびクラス間でフィクスチャを共有する目的ですぐに使用できるフィクスチャ。詳細については、
matlab.unittest.fixtures
と共有フィクスチャを使用するテストの記述を参照してください。カスタムのテスト フィクスチャを作成する機能。詳細は、基本的なカスタム フィクスチャの作成と高度なカスタム フィクスチャの作成を参照してください。