이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.
이 예제에서는 MATLAB® 함수 quadraticSolver.m
에 대한 단위 테스트를 작성하는 방법을 보여줍니다.
다음 MATLAB 함수는 2차 방정식의 해를 구합니다. MATLAB 경로에 있는 폴더에 이 함수를 만드십시오.
function roots = 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 roots(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a); roots(2) = (-b - sqrt(b^2 - 4*a*c)) / (2*a); end
matlab.unittest
프레임워크를 사용하려면, matlab.unittest.TestCase
에서 파생된 클래스인 테스트 케이스 형식으로 MATLAB 함수(테스트)를 작성하십시오.
서브클래스 SolverTest
를 만드십시오.
% Copyright 2015 The MathWorks, Inc. classdef SolverTest < matlab.unittest.TestCase methods (Test) end end
다음 단계에서는 특정 테스트를 만드는 방법을 보여줍니다. 이 테스트를 (Test)
특성이 주어진 methods
블록 내에 배치하십시오.
quadraticSolver
가 실수 해에 대한 올바른 값을 반환하는지 확인하려면, 테스트 메서드 testRealSolution
을 만드십시오. 예를 들어, 방정식 은 실수 해
과
를 가집니다. 이 메서드는 이 방정식의 입력값을 사용하여
quadraticSolver
를 호출합니다. 해 expSolution
은 [2,1]
입니다.
matlab.unittest.TestCase
메서드 verifyEqual
을 사용하여 함수 actSolution
의 출력값을 예상 출력값 expSolution
과 비교하십시오. 가설 검정(Qualification)에 실패하는 경우 테스트는 실행을 계속합니다.
% Copyright 2015 The MathWorks, Inc. function testRealSolution(testCase) actSolution = quadraticSolver(1,-3,2); expSolution = [2,1]; testCase.verifyEqual(actSolution,expSolution) end
이 함수를 methods (Test)
블록에 추가하십시오.
quadraticSolver
가 허수 해에 대한 올바른 값을 반환하는지 확인하는 테스트를 만드십시오. 예를 들어, 방정식 은 허수 해
와
를 가집니다. 함수
testImaginarySolution
을 methods (Test)
블록 내에 추가하십시오.
% Copyright 2015 The MathWorks, Inc. function testImaginarySolution(testCase) actSolution = quadraticSolver(1,2,10); expSolution = [-1+3i, -1-3i]; testCase.verifyEqual(actSolution,expSolution) end
블록 내의 테스트 순서는 중요하지 않습니다.
다음은 전체 SolverTest
클래스 정의입니다. MATLAB 경로 내 폴더에 이 파일을 저장하십시오.
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
SolverTest
클래스 정의 파일에서 모든 테스트를 실행하십시오.
testCase = SolverTest; res = run(testCase)
Running SolverTest .. Done SolverTest __________ res = 1x2 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 2 Passed, 0 Failed, 0 Incomplete. 0.73301 seconds testing time.
단일 테스트 testRealSolution
을 실행하려면 다음을 수행하십시오.
testCase = SolverTest;
res = run(testCase,'testRealSolution')
Running SolverTest . Done SolverTest __________ res = TestResult with properties: Name: 'SolverTest/testRealSolution' Passed: 1 Failed: 0 Incomplete: 0 Duration: 0.0145 Details: [1x1 struct] Totals: 1 Passed, 0 Failed, 0 Incomplete. 0.01449 seconds testing time.