Main Content

単純なテスト スイートの作成

この例では、SolverTest テスト ケースを使用して、テストをテスト スイートに組み込む方法について説明します。matlab.unittest.TestSuite クラスの静的 from* メソッドを使用して、テストを組み合わせるスイートを作成します。このメソッドは、スイートの編成が名前空間とクラス、ファイルとフォルダー、あるいはその両方による場合に共通です。

二次ソルバー関数の作成

作業フォルダーの quadraticSolver.m ファイルに二次方程式の根を解く次の関数を作成します。

function r = quadraticSolver(a, b, c)
% quadraticSolver returns solutions to the 
% quadratic equation a*x^2 + b*x + c = 0.

if ~isa(a,'numeric') || ~isa(b,'numeric') || ~isa(c,'numeric')
    error('quadraticSolver:InputMustBeNumeric', ...
        'Coefficients must be numeric.');
end

r(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a);
r(2) = (-b - sqrt(b^2 - 4*a*c)) / (2*a);

end

二次ソルバー関数のテストの作成

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

classdef SolverTest < matlab.unittest.TestCase
    % SolverTest tests solutions to the quadratic equation
    % a*x^2 + b*x + c = 0
    
    methods (Test)
        function testRealSolution(testCase)
            actSolution = quadraticSolver(1,-3,2);
            expSolution = [2,1];
            testCase.verifyEqual(actSolution,expSolution);
        end
        function testImaginarySolution(testCase)
            actSolution = quadraticSolver(1,2,10);
            expSolution = [-1+3i, -1-3i];
            testCase.verifyEqual(actSolution,expSolution);
        end
    end
    
end

TestSuite クラスのインポート

コマンド プロンプトで、現在のインポート リストに matlab.unittest.TestSuite クラスを追加します。

import matlab.unittest.TestSuite

SolverTest クラス定義ファイルが MATLAB® パス上にあることを確認してください。

SolverTest クラスからのスイートの作成

fromClass メソッドは、SolverTest クラスのすべての Test メソッドからスイートを作成します。

suiteClass = TestSuite.fromClass(?SolverTest);
result = run(suiteClass);

SolverTest クラス定義ファイルからのスイートの作成

fromFile メソッドは、クラスを識別するファイルの名前を使用してスイートを作成します。

suiteFile = TestSuite.fromFile('SolverTest.m');
result = run(suiteFile);

現在のフォルダーのすべてのテスト ケース ファイルからのスイートの作成

fromFolder メソッドは、指定されたフォルダーのすべてのテスト ケース ファイルからスイートを作成します。たとえば、現在のフォルダーに以下のファイルがあります。

  • BankAccountTest.m

  • DocPolynomTest.m

  • FigurePropertiesTest.m

  • IsSupportedTest.m

  • SolverTest.m

suiteFolder = TestSuite.fromFolder(pwd);
result = run(suiteFolder);

単一のテスト メソッドからのスイートの作成

fromMethod メソッドは、単一のテスト メソッドからスイートを作成します。

suiteMethod = TestSuite.fromMethod(?SolverTest,'testRealSolution')'
result = run(suiteMethod);

参考

関連するトピック