주요 콘텐츠

라이브 스크립트를 사용하여 테스트 작성하기

이 예제에서는 TestRightTriLiveScriptExample.mlx라는 라이브 스크립트를 작성하여 함수를 테스트하는 방법을 보여줍니다. 이 함수는 직각삼각형의 각도를 반환하는데, 여기서는 이 함수를 테스트하는 라이브 스크립트 기반 단위 테스트를 작성하겠습니다. 테스트를 문서화하는 데 도움이 되도록 라이브 스크립트에 수식과 이미지를 포함시킬 수 있습니다.

라이브 스크립트 기반 테스트는 다음 규칙을 따릅니다.

  • 테스트 파일의 이름은 "test"(대/소문자 구분 안 함)라는 단어로 시작하거나 끝나야 합니다. 파일 이름이 "test"로 시작하거나 끝나지 않으면 파일에 포함된 테스트가 어떤 경우에는 무시될 수 있습니다.

  • 각 단위 테스트는 라이브 스크립트의 별도 섹션에 두어야 합니다. 섹션에 소제목 1 스타일의 제목이 있으면 제목이 테스트의 이름이 됩니다. 그렇지 않으면 MATLAB®이 테스트에 임의의 이름을 할당합니다.

  • 라이브 편집기 탭의 실행 섹션을 사용하여 라이브 스크립트를 실행하는 경우 MATLAB에서 테스트 실패가 발생하면 MATLAB은 스크립트 실행을 중지하고 나머지 테스트를 실행하지 않습니다. 단위 테스트 프레임워크(예: runtests 함수)를 사용하여 라이브 스크립트를 실행하는 경우 MATLAB에서 테스트 실패가 발생하면 MATLAB은 나머지 테스트를 계속 실행합니다.

  • 라이브 스크립트가 테스트로 실행되는 경우 한 테스트에서 정의된 변수는 다른 테스트 내에서 액세스할 수 없습니다. 마찬가지로, 다른 작업 공간에서 정의된 변수에 대해 테스트가 액세스할 수 없습니다.

테스트할 함수 생성하기

현재 폴더에 있는 rightTri.m이라는 파일에서 rightTri 함수를 만듭니다. 이 함수는 삼각형의 두 변의 길이를 입력값으로 받아 직각삼각형의 세 각의 값을 반환합니다. 입력 변은 삼각형의 빗변이 아닌 짧은 두 변입니다.

type rightTri.m
function 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 함수는 sin(θ)θ가 되도록 작은각 근사와 일치하는 값을 반환해야 합니다. 작은각 근사를 위한 테스트를 만듭니다. 통상적으로 부동소수점 값을 비교할 때는 비교를 위한 허용오차를 지정합니다.

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")

테스트: 각도의 합

kak=180

결과로 생성되는 직각삼각형의 모든 각도의 합은 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 삼각형

Right triangle whose angles are 30, 60, and 90 degrees

변의 길이가 1과 3의 비율을 갖는 직각삼각형에서는 각도가 30, 60, and 90입니다. 이 조건에 맞는 테스트를 만듭니다.

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 항목을 참조하십시오.

참고 항목

함수

도움말 항목