matlab.unittest.diagnostics.ConstraintDiagnostic 클래스
네임스페이스: matlab.unittest.diagnostics
슈퍼클래스: matlab.automation.diagnostics.Diagnostic
제약 조건에 흔히 사용되는 필드들을 사용한 진단
설명
matlab.unittest.diagnostics.ConstraintDiagnostic
클래스는 제약 조건에 흔히 사용되는 필드들을 사용한 진단을 제공합니다. 이러한 필드에는 설명, 조건, 실제 값, 예상 값이 포함됩니다. 자세한 내용은 진단 필드 항목을 참조하십시오.
ConstraintDiagnostic
클래스를 사용하면 사용자 지정 제약 조건에 의해 생성된 진단에 일반적인 디자인을 간단히 추가할 수 있습니다. ConstraintDiagnostic
객체를 사용하여 Constraint
서브클래스의 getDiagnosticFor
메서드 또는 BooleanConstraint
서브클래스의 getNegativeDiagnosticFor
메서드를 구현할 수 있습니다.
matlab.unittest.diagnostics.ConstraintDiagnostic
클래스는 handle
클래스입니다.
생성
설명
diag = matlab.unittest.diagnostics.ConstraintDiagnostic
은 ConstraintDiagnostic
객체를 만듭니다. 그런 다음 객체의 속성을 설정하여 제약 조건 진단을 사용자 지정할 수 있습니다.
속성
ConstraintDiagnostic
클래스는 다음 속성 외에도 Diagnostic
클래스로부터 Artifacts
속성 및 DiagnosticText
속성을 상속합니다.
Description
— 일반 진단 정보
string형 스칼라 | 문자형 벡터
일반 진단 정보로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
특성:
GetAccess | public |
SetAccess | public |
DisplayDescription
— 설명을 표시하기 위한 옵션
false
또는 0
(디폴트 값) | true
또는 1
Description
속성에 텍스트를 표시하기 위한 옵션으로, 숫자형 또는 논리값 0
(false
) 또는 1
(true
)로 지정됩니다. 기본적으로 제약 조건에는 설명이 표시되지 않습니다.
특성:
GetAccess | public |
SetAccess | public |
Conditions
— 서식 있는 조건 목록
문자형 벡터
서식 있는 조건 목록으로, 문자형 벡터로 반환됩니다. 프레임워크에서 진단을 표시할 때 각 조건은 새 줄(Newline)에서 화살표(-->
) 구분 기호로 시작합니다.
조건은 테스트 실패의 원인과 관련된 정보를 포함하며 “하위 진단” 역할을 합니다. addCondition
메서드와 addConditionsFrom
메서드를 사용하여 목록에 조건을 추가합니다.
특성:
GetAccess | public |
SetAccess | private |
ConditionsCount
— 조건 목록에 있는 조건의 개수
음이 아닌 정수 스칼라
Conditions
속성에 저장된 조건 목록에 있는 조건의 개수로, 음이 아닌 정수 스칼라로 반환됩니다.
특성:
GetAccess | public |
SetAccess | private |
데이터형: double
DisplayConditions
— 조건 목록을 표시하기 위한 옵션
false
또는 0
(디폴트 값) | true
또는 1
Conditions
속성에 조건 목록을 표시하기 위한 옵션으로, 숫자형 또는 논리값 0
(false
) 또는 1
(true
)로 지정됩니다. 기본적으로 제약 조건에는 조건 목록이 표시되지 않습니다.
특성:
GetAccess | public |
SetAccess | public |
ActVal
— 실제 값
임의의 값
테스트할 실제 값으로, 임의의 데이터형 값으로 지정됩니다.
특성:
GetAccess | public |
SetAccess | public |
ActValHeader
— 실제 값에 대한 제목 정보
'Actual Value:'
(디폴트 값) | string형 스칼라 | 문자형 벡터
실제 값에 대한 제목 정보로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
특성:
GetAccess | public |
SetAccess | public |
DisplayActVal
— 실제 값을 표시하기 위한 옵션
false
또는 0
(디폴트 값) | true
또는 1
실제 값과 제목 정보를 표시하기 위한 옵션으로, 숫자형 또는 논리값 0
(false
) 또는 1
(true
)로 지정됩니다. 기본적으로 제약 조건에는 실제 값이 표시되지 않습니다.
특성:
GetAccess | public |
SetAccess | public |
ExpVal
— 예상 값
임의의 값
예상 값으로, 해당되는 경우 임의의 데이터형 값으로 지정됩니다.
특성:
GetAccess | public |
SetAccess | public |
ExpValHeader
— 예상 값에 대한 제목 정보
'Expected Value:'
(디폴트 값) | string형 스칼라 | 문자형 벡터
예상 값에 대한 제목 정보로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
특성:
GetAccess | public |
SetAccess | public |
DisplayExpVal
— 예상 값을 표시하기 위한 옵션
false
또는 0
(디폴트 값) | true
또는 1
예상 값과 제목 정보를 표시하기 위한 옵션으로, 숫자형 또는 논리값 0
(false
) 또는 1
(true
)로 지정됩니다. 기본적으로 제약 조건에는 예상 값이 표시되지 않습니다.
특성:
GetAccess | public |
SetAccess | public |
메서드
퍼블릭 메서드
ConstraintDiagnostic
클래스는 다음 메서드 외에도 Diagnostic
클래스로부터 diagnose
메서드 및 matlab.automation.diagnostics.Diagnostic.join
메서드를 상속합니다.
addCondition |
조건 입력 인수
|
addConditionsFrom |
다른 입력 인수
|
matlab.unittest.diagnostics.ConstraintDiagnostic.getDisplayableString |
입력 인수
출력 인수
|
보호 메서드
ConstraintDiagnostic
서브클래스에서 다음과 같은 보호 메서드를 재정의하여 진단에 더 많은 필드를 추가할 수 있습니다. 프레임워크는 이러한 메서드를 호출하여 필드를 가져와 메서드에서 지정한 위치의 진단 결과에 삽입합니다. 각 메서드는 재정의되지 않은 경우 빈 문자형 벡터를 반환합니다.
getPreDescriptionString |
설명 앞에 표시할 텍스트를 반환합니다. 입력 인수
출력 인수
|
getPostDescriptionString |
설명 뒤에 표시할 텍스트를 반환합니다. 입력 인수
출력 인수
|
getPostConditionsString |
조건 목록 뒤에 표시할 텍스트를 반환합니다. 입력 인수
출력 인수
|
getPostActValString |
실제 값 뒤에 표시할 텍스트를 반환합니다. 입력 인수
출력 인수
|
getPostExpValString |
예상 값 뒤에 표시할 텍스트를 반환합니다. 입력 인수
출력 인수
|
예제
제약 조건 진단 생성하기
값이 예상 값과 동일한 크기인지 확인하는 사용자 지정 제약 조건을 만듭니다. 제약 조건에 대한 진단 정보를 생성하기 위해 ConstraintDiagnostic
클래스를 사용하여 getDiagnosticFor
메서드를 구현합니다.
현재 폴더의 파일에서 matlab.unittest.constraints.Constraint
에서 파생되는 IsSameSizeAs
라는 클래스를 만들고 satisfiedBy
메서드와 getDiagnosticFor
메서드를 구현합니다. getDiagnosticFor
메서드를 구현하기 위해 ConstraintDiagnostic
클래스의 인스턴스를 사용합니다. ConstraintDiagnostic
클래스를 사용하면 테스트 성공 또는 실패에 대한 다양한 진단 필드를 편리하게 사용자 지정할 수 있습니다.
classdef IsSameSizeAs < matlab.unittest.constraints.Constraint properties (SetAccess=immutable) ValueWithExpectedSize end methods function constraint = IsSameSizeAs(value) constraint.ValueWithExpectedSize = value; end function tf = satisfiedBy(constraint,actual) tf = constraint.sizeMatchesExpected(actual); end function diagnostic = getDiagnosticFor(constraint,actual) if constraint.sizeMatchesExpected(actual) diagnostic = diagnosticForPassingTest; else diagnostic = diagnosticForFailingTest(constraint,actual); end end end methods (Access=private) function tf = sizeMatchesExpected(constraint,actual) tf = isequal(size(actual), ... size(constraint.ValueWithExpectedSize)); end function diag = diagnosticForPassingTest(~,~) import matlab.unittest.diagnostics.ConstraintDiagnostic diag = ConstraintDiagnostic; diag.DisplayDescription = true; diag.Description = "IsSameSizeAs passed."; end function diag = diagnosticForFailingTest(constraint,actual) import matlab.unittest.diagnostics.ConstraintDiagnostic diag = ConstraintDiagnostic; diag.DisplayDescription = true; diag.Description = "IsSameSizeAs failed."; diag.DisplayConditions = true; diag.addCondition("Sizes did not match.") diag.DisplayActVal = true; diag.ActValHeader = "Actual Size:"; diag.ActVal = size(actual); diag.DisplayExpVal = true; diag.ExpValHeader = "Expected Size:"; diag.ExpVal = size(constraint.ValueWithExpectedSize); end end end
대화형 방식 테스트를 위한 테스트 케이스를 생성합니다.
testCase = matlab.unittest.TestCase.forInteractiveUse;
실패 케이스를 테스트합니다. 프레임워크는 diagnosticForFailingTest
헬퍼 메서드에 구현된 제약 조건 진단을 표시합니다.
testCase.verifyThat(zeros(5),IsSameSizeAs(ones(1,5)))
Verification failed. --------------------- Framework Diagnostic: --------------------- IsSameSizeAs failed. --> Sizes did not match. Actual Size: 5 5 Expected Size: 1 5
진단 설명 앞에 텍스트 표시하기
진단의 설명 필드 앞에 텍스트를 삽입하는 제약 조건 진단을 만듭니다.
현재 폴더의 파일에 matlab.unittest.diagnostics.ConstraintDiagnostic
에서 파생되는 CustomConstraintDiagnostic
이라는 클래스를 만듭니다. 사용자 지정 진단 클래스가 해당 슈퍼클래스로부터 상속하는 getPreDescriptionString
메서드를 구현하여 진단의 선택적 설명 필드 앞에 텍스트를 삽입합니다.
classdef CustomConstraintDiagnostic < ... matlab.unittest.diagnostics.ConstraintDiagnostic properties (SetAccess=immutable) Context end methods function diag = CustomConstraintDiagnostic(context) arguments context (1,1) string = "Test Outcome Information" end diag.Context = context; end end methods (Access=protected) function str = getPreDescriptionString(diag) str = diag.Context; end end end
이 예제에서 사용되는 클래스를 가져옵니다.
import matlab.unittest.TestCase import matlab.unittest.constraints.IsEqualTo
CustomConstraintDiagnostic
클래스를 인스턴스화하여 제약 조건 진단을 만듭니다.
diagnostic = CustomConstraintDiagnostic;
diagnostic.DisplayDescription = true;
diagnostic.Description = "My Custom Diagnostic";
실제로는 주로 제약 조건 진단을 사용하여 사용자 지정 제약 조건을 구현합니다. 이 예제를 단순화하기 위해 대화형 방식 테스트를 위한 테스트 케이스를 생성하고 CustomConstraintDiagnostic
객체를 사용하여 테스트 실패 시 진단 정보를 표시합니다. 프레임워크는 지정된 설명과 설명 앞에 삽입된 디폴트 텍스트를 모두 표시합니다.
testCase = TestCase.forInteractiveUse; testCase.verifyThat(1,IsEqualTo(2),diagnostic)
Verification failed. ---------------- Test Diagnostic: ---------------- Test Outcome Information My Custom Diagnostic --------------------- Framework Diagnostic: --------------------- IsEqualTo failed. --> NumericComparator failed. --> The numeric values are not equal using "isequaln". --> Failure table: Actual Expected Error RelativeError ______ ________ _____ _____________ 1 2 -1 -0.5 Actual Value: 1 Expected Value: 2
세부 정보
진단 필드
제약 조건 진단은 다음 텍스트 필드로 구성되며, 다음 순서대로 표시됩니다.
설명 — 일반 진단 정보입니다.
조건 — 실패의 원인을 설명하는 서식 있는 조건 목록입니다. 각 조건은 새 줄(Newline)에서 화살표(
-->
) 구분 기호로 시작합니다.실제 값 — 제약 조건과 관련된 실제 값입니다. 적절한 표시를 위해 텍스트가 잘리거나 서식이 지정될 수 있습니다.
예상 값 — 제약 조건과 관련된 예상 값입니다(해당되는 경우).
ConstraintDiagnostic
클래스는 matlab.automation.diagnostics.Diagnostic
으로부터 diagnose
메서드를 상속하고 이를 구현하여 이들 필드를 사용해 제약 조건 진단을 구성합니다.
버전 내역
R2013a에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)