이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

matlab.unittest.constraints.HasField 클래스

패키지: matlab.unittest.constraints
슈퍼클래스: matlab.unittest.constraints.BooleanConstraint

특정 필드를 포함하는 구조체를 규정하는 제약 조건

생성

HasField(fieldname)은 특정 필드 fieldname을 포함하는 구조체를 규정하는 제약 조건을 제공합니다. 이 제약 조건은 실제 값이 구조체이고 해당 구조체가 fieldname 필드를 포함하는 경우 충족됩니다.

입력 인수

fieldname

제약 조건을 충족하기 위해 구조체에 포함되어야 할 필드의 이름으로, 문자형 벡터로 지정됩니다.

속성

Field

구조체가 제약 조건을 충족하기 위해 포함해야 할 필드의 이름입니다. fieldname 입력 인수를 통해 생성자에 이 속성을 설정합니다.

복사 의미 체계

값입니다. 값 클래스가 복사 작업에 미치는 영향에 대한 내용은 객체 복사 항목을 참조하십시오.

예제

모두 축소

대화형 방식 테스트를 위한 TestCase를 생성합니다.

import matlab.unittest.TestCase
import matlab.unittest.constraints.HasField

testCase = TestCase.forInteractiveUse;

필드가 두 개인 구조체 S를 다음과 같이 정의합니다.

S = struct('Tag', 123, 'Serial', 345);

구조체에 'Tag' 필드가 있는지 확인합니다.

testCase.verifyThat(S, HasField('Tag'))
Interactive verification passed.

구조체에 'tag' 필드가 있는지 확인합니다.

testCase.verifyThat(S, HasField('tag'))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
HasField failed.
--> The value did not have the expected field.
    
    Actual Fieldnames:
            'Tag'
            'Serial'
    Expected Fieldname:
            'tag'

Actual Value:
           Tag: 123
        Serial: 345

필드 이름 비교가 대/소문자를 구분하기 때문에 검증 결과는 실패입니다.

구조체에 'Tag' 필드가 있는지 확인합니다.

testCase.verifyThat(S, HasField('Tag'))
Interactive verification passed.

구조체에 'Tag' 필드와 'Serial' 필드가 모두 있는지 확인합니다.

testCase.verifyThat(S, HasField('Tag') & HasField('Serial'))
Interactive verification passed.

구조체에 'Name' 필드가 없는지 확인합니다.

testCase.verifyThat(S, ~HasField('Name'))
Interactive verification passed.