라이브 스크립트를 사용하여 테스트 작성하기
이 예제에서는 TestRightTriLiveScriptExample.mlx라는 라이브 스크립트를 작성하여 함수를 테스트하는 방법을 보여줍니다. 이 함수는 직각삼각형의 각도를 반환하는데, 여기서는 이 함수를 테스트하는 라이브 스크립트 기반 단위 테스트를 작성하겠습니다. 테스트를 문서화하는 데 도움이 되도록 라이브 스크립트에 수식과 이미지를 포함시킬 수 있습니다.
라이브 스크립트 기반 테스트는 다음 규칙을 따릅니다.
테스트 파일의 이름은 "test"(대/소문자 구분 안 함)라는 단어로 시작하거나 끝나야 합니다. 파일 이름이 "test"로 시작하거나 끝나지 않으면 파일에 포함된 테스트가 어떤 경우에는 무시될 수 있습니다.
각 단위 테스트는 라이브 스크립트의 별도 섹션에 두어야 합니다. 섹션에 소제목 1 스타일의 제목이 있으면 제목이 테스트의 이름이 됩니다. 그렇지 않으면 MATLAB®이 테스트에 임의의 이름을 할당합니다.
라이브 편집기 탭의 실행 섹션을 사용하여 라이브 스크립트를 실행하는 경우 MATLAB에서 테스트 실패가 발생하면 MATLAB은 스크립트 실행을 중지하고 나머지 테스트를 실행하지 않습니다. 단위 테스트 프레임워크(예:
runtests함수)를 사용하여 라이브 스크립트를 실행하는 경우 MATLAB에서 테스트 실패가 발생하면 MATLAB은 나머지 테스트를 계속 실행합니다.라이브 스크립트가 테스트로 실행되는 경우 한 테스트에서 정의된 변수는 다른 테스트 내에서 액세스할 수 없습니다. 마찬가지로, 다른 작업 공간에서 정의된 변수에 대해 테스트가 액세스할 수 없습니다.
테스트할 함수 생성하기
현재 폴더에 있는 rightTri.m이라는 파일에서 rightTri 함수를 만듭니다. 이 함수는 삼각형의 두 변의 길이를 입력값으로 받아 직각삼각형의 세 각의 값을 반환합니다. 입력 변은 삼각형의 빗변이 아닌 짧은 두 변입니다.
type rightTri.mfunction angles = rightTri(sides) A = atand(sides(1)/sides(2)); B = atand(sides(2)/sides(1)); hypotenuse = sides(1)/sind(A); C = asind(hypotenuse*sind(A)/sides(1)); angles = [A B C]; end
테스트: 작은각 근사

rightTri 함수는 가 되도록 작은각 근사와 일치하는 값을 반환해야 합니다. 작은각 근사를 위한 테스트를 만듭니다. 통상적으로 부동소수점 값을 비교할 때는 비교를 위한 허용오차를 지정합니다.
angles = rightTri([1 1500]); smallAngleInRadians = (pi/180)*angles(1); % Convert to radians approx = sin(smallAngleInRadians); assert(abs(approx-smallAngleInRadians) <= 1e-10,"Problem with small angle approximation")
테스트: 각도의 합
결과로 생성되는 직각삼각형의 모든 각도의 합은 180도여야 합니다. 각도의 합을 위한 테스트를 만듭니다. 한 테스트에 assert 문을 여러 개 포함시킬 수 있습니다. 그러나 어설션이 실패할 경우 MATLAB은 나머지 명령문을 실행하지 않습니다.
angles = rightTri([7 9]); assert(sum(angles) == 180) angles = rightTri([4 4]); assert(sum(angles) == 180) angles = rightTri([2 2*sqrt(3)]); assert(sum(angles) == 180)
테스트: 30-60-90 삼각형

변의 길이가 1과 의 비율을 갖는 직각삼각형에서는 각도가 입니다. 이 조건에 맞는 테스트를 만듭니다.
tol = 1e-10; angles = rightTri([2 2*sqrt(3)]); assert(abs(angles(1)-30) <= tol) assert(abs(angles(2)-60) <= tol) assert(abs(angles(3)-90) <= tol)
테스트: 이등변삼각형
이등변삼각형에서는 직각이 아닌 두 각은 모두 45도여야 합니다. 이 조건에 맞는 테스트를 만듭니다.
angles = rightTri([4 4]); assert(angles(1) == 45) assert(angles(1) == angles(2))
테스트 실행하기
테스트를 실행하려면, 단위 테스트 프레임워크에서 runtests 함수를 사용하거나 라이브 편집기 탭의 실행 섹션에 있는 버튼을 사용하면 됩니다. 하지만 단위 테스트 프레임워크를 사용하여 라이브 스크립트를 실행하는 경우 이 프레임워크에서 추가적인 진단 정보를 제공합니다. 테스트가 실패할 경우, 테스트 프레임워크는 후속 테스트를 실행하지만 실행 섹션 버튼은 그렇지 않습니다. 예를 들어, 이 테스트를 실행하려면 명령 창에 result = runtests("TestRightTriLiveScriptExample")을 입력합니다. 자세한 내용은 runtests 항목을 참조하십시오.