Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

matlab.unittest.constraints.IsOfClass 클래스

네임스페이스: matlab.unittest.constraints
슈퍼클래스: matlab.unittest.constraints.BooleanConstraint

값의 클래스가 지정된 클래스인지 테스트

설명

matlab.unittest.constraints.IsOfClass 클래스는 값의 클래스가 지정된 클래스인지 테스트하는 제약 조건을 제공합니다.

IsOfClass 제약 조건은 클래스가 정확하게 일치하는지 테스트합니다. 클래스 계층 구조에 포함되는지 여부를 테스트하려면 IsInstanceOf 제약 조건을 사용하십시오.

생성

설명

예제

c = matlab.unittest.constraints.IsOfClass(class)는 값의 클래스가 class인지 테스트하는 제약 조건을 만들고 Class 속성을 설정합니다. 이 제약 조건은 값의 클래스가 class인 경우 충족됩니다. 값이 class에서 파생되는 경우에는 제약 조건이 충족되지 않습니다.

속성

모두 확장

예상 클래스로, 문자형 벡터로 반환됩니다. 제약 조건을 생성할 때 이 속성의 값을 string형 스칼라, 문자형 벡터 또는 meta.class 인스턴스로 지정합니다.

특성:

GetAccess
public
SetAccess
private

예제

모두 축소

IsOfClass 제약 조건을 사용하여 숫자형 값을 테스트합니다.

먼저 이 예제에서 사용되는 클래스를 가져옵니다.

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsOfClass

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

testCase = TestCase.forInteractiveUse;

숫자형 값 5의 클래스가 double인지 확인합니다.

testCase.verifyThat(5,IsOfClass("double"))
Verification passed.

string형 대신 meta.class 인스턴스를 사용하여 테스트를 반복합니다.

testCase.verifyThat(5,IsOfClass(?double))
Verification passed.

0이 논리값이 아닌지 확인합니다.

testCase.verifyThat(0,~IsOfClass("logical"))
Verification passed.

IsOfClass 제약 조건을 사용하여 함수 핸들을 테스트합니다.

먼저 이 예제에서 사용되는 클래스를 가져옵니다.

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsOfClass

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

testCase = TestCase.forInteractiveUse;

@sin이 함수 핸들인지 확인합니다.

testCase.verifyThat(@sin,IsOfClass(?function_handle))
Verification passed.

함수 이름 "sin"을 사용하여 테스트를 반복합니다. 테스트가 실패합니다.

testCase.verifyThat("sin",IsOfClass(?function_handle))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsOfClass failed.
    --> The value's class is incorrect.
        
        Actual Class:
            string
        Expected Class:
            function_handle
    
    Actual Value:
        "sin"

IsOfClass 제약 조건을 사용하여 파생된 클래스의 인스턴스를 테스트합니다.

현재 폴더에 있는 파일에서 ExampleHandle 핸들 클래스를 만듭니다.

classdef ExampleHandle < handle
    properties
        Number = 1;
    end
end

이 예제에서 사용되는 클래스를 가져옵니다.

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsOfClass

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

testCase = TestCase.forInteractiveUse;

IsOfClass 제약 조건을 사용하여 ExampleHandle 객체를 테스트합니다. 테스트가 통과합니다.

actual = ExampleHandle;
testCase.verifyThat(actual,IsOfClass(?ExampleHandle))
Verification passed.

핸들 클래스를 사용하여 테스트를 반복합니다. actual이 핸들 클래스에서 파생되더라도, handleactual의 정확한 클래스가 아니므로 테스트가 실패합니다.

testCase.verifyThat(actual,IsOfClass(?handle))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsOfClass failed.
    --> The value's class is incorrect.
        
        Actual Class:
            ExampleHandle
        Expected Class:
            handle
    
    Actual Value:
      ExampleHandle with properties:
    
        Number: 1

IsOfClass 제약 조건을 사용하여 함수의 출력값을 테스트합니다.

현재 폴더에 있는 파일에서 add5 함수를 만듭니다. 이 함수는 숫자형 입력값을 받아 5씩 증가시킵니다.

function y = add5(x)
% add5 - Increment input by 5
if ~isa(x,"numeric")
    error("add5:InputMustBeNumeric","Input must be numeric.")
end
y = x + 5;
end

이 예제에서 사용되는 클래스를 가져옵니다.

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsOfClass

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

testCase = TestCase.forInteractiveUse;

유효한 입력값을 사용하여 함수를 호출합니다. 그런 다음, 반환된 값의 클래스가 double인지 테스트합니다. 테스트가 통과합니다.

actual = add5(1);
testCase.verifyThat(actual,IsOfClass(?double))
Verification passed.

버전 내역

R2013a에 개발됨