Main Content

createMock

클래스: matlab.mock.TestCase
네임스페이스: matlab.mock

모의 객체 생성

구문

[mock,behavior] = createMock(testcase)
[mock,behavior] = createMock(testcase,superclass)
[mock,behavior] = createMock(___,Name,Value)

설명

[mock,behavior] = createMock(testcase)는 모의 객체와 관련 동작 객체를 만듭니다.

[mock,behavior] = createMock(testcase,superclass)superclass 클래스에서 파생된 모의 객체를 만듭니다.

[mock,behavior] = createMock(___,Name,Value)는 하나 이상의 Name,Value 쌍 인수로 지정된 추가 옵션을 사용하여 모의 객체를 만듭니다. 이 구문은 위에 열거된 구문에서 사용된 모든 인수와 함께 사용할 수 있습니다.

입력 인수

모두 확장

테스트 케이스의 인스턴스로, matlab.mock.TestCase 객체로 지정됩니다.

모의 객체에 대한 슈퍼클래스로, 스칼라 matlab.metadata.Class 객체로 지정됩니다. 이 모의 객체는 이 클래스의 모든 추상 속성과 추상 메서드를 구현합니다.

예: ?MyIterfaceClass

예: ?MException

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예를 들어, [mock,behavior] = testCase.createMock('AddedProperties',{'Prop1','Prop2'})는 모의 객체를 만들고, Prop1 속성과 Prop2 속성을 추가합니다.

모의 객체에 추가할 메서드의 이름으로, string형 배열이나 문자형 벡터로 구성된 셀형 배열 중 하나로 지정됩니다. 엄밀한 모의 객체이거나 모의 동작이 정의된 경우를 제외하고 모의 객체에 대해 이러한 메서드를 호출하면 빈 배열이 반환됩니다.

예: ["methodA","methodB","methodC"]

예: {'method1','method2'}

모의 객체에 추가할 속성의 이름으로, string형 배열이나 문자형 벡터로 구성된 셀형 배열 중 하나로 지정됩니다. 엄밀한 모의 객체가 아닌 경우 이 객체의 값을 설정하여 가져올 수 있습니다. 그러나 엄밀한 모의 객체의 경우 속성값을 설정하거나 가져오면 기본적으로 MATLAB®은 어설션 실패를 생성합니다.

예: "MyProperty"

예: {'Prop1','Prop2'}

모의 객체에 추가할 이벤트의 이름으로, string형 배열이나 문자형 벡터로 구성된 셀형 배열 중 하나로 지정됩니다. 모의 객체에 이벤트를 추가하려면 핸들 클래스에서 모의 객체를 파생해야 합니다.

예: "MyEvent"

예: {'Event1','Event2'}

디폴트 속성값으로, 스칼라 구조체로 지정됩니다. 이 이름-값 쌍 인수를 사용하여 모의 객체 클래스로 구현된 속성에 대한 디폴트 값을 지정합니다. 이러한 속성에는 Abstract 슈퍼클래스 속성과 'AddedProperties' 이름-값 쌍 인수를 사용하여 추가된 속성이 포함됩니다. 각 필드는 모의 클래스에서 구현된 속성의 이름을 참조하며, 대응하는 값은 이 속성에 대한 디폴트 값을 나타냅니다.

예: struct('PropA',123,'PropB',true)

모의 실행할 메서드로, string형 배열 또는 문자형 벡터로 구성된 셀형 배열의 메서드 이름을 사용하여 지정됩니다. 모의 실행할 메서드가 없는 것으로 지정하려면 string.empty로 지정된 빈 값 또는 {}을 사용하십시오. 기본적으로, 모든 메서드가 모의 실행됩니다.

MockedMethods는 추가된 메서드, 추상 슈퍼클래스 메서드 및 재정의 가능한 구체 슈퍼클래스 메서드(Sealed 특성 값이 false)의 어떤 서브셋도 포함할 수 있습니다. 일반적으로, 스텁 처리(stub)하거나 감시(spy)하려는 메서드만 포함합니다.

MockedMethods를 지정하면 테스트가 테스트 케이스에 중요한 메서드만 모의 실행할 수 있습니다. 모의 실행되는 메서드를 제한하면 슈퍼클래스가 많은 수의 메서드를 정의하는 경우에 테스트 성능을 개선할 수 있습니다.

예: ["foo" "bar"]

데이터형: char | string | cell

모의 객체가 엄밀한지 여부의 표시자로, false 또는 true로 지정됩니다. 기본적으로, 동작이 정의되지 않은 경우 모의 메서드는 빈 배열을 반환합니다. Stricttrue로 설정하는 경우 이 프레임워크는 다음에 대한 정의되지 않은 동작에 대해 어설션 실패를 생성합니다.

  • 지정된 인터페이스의 모든 abstract 메서드와 속성.

  • AddedMethods 인수로 모의 객체에 추가된 메서드.

  • AddedProperties 인수로 모의 객체에 추가된 속성.

데이터형: logical

superclass 생성자에 전달할 입력값으로, 값으로 구성된 셀형 배열로 지정됩니다.

예: superclass?MException으로 정의할 모의 객체를 생성하는 경우 'ConstructorInputs'{'My:ID','My message'}일 수 있습니다.

출력 인수

모두 확장

superclass 입력값으로 지정된 인터페이스의 추상 메서드와 추상 속성의 구현으로, 모의 객체로 반환됩니다. 슈퍼클래스 정의 없이 모의 객체가 생성된 경우 명시적 인터페이스가 없습니다.

참고: 모의 객체는 저장하거나 불러올 수 없습니다.

모의 동작 정의로, 동작 객체로 반환됩니다. behavior를 사용하여 모의 동작을 정의하고, 상호 작용을 확인합니다.

참고: 동작 객체는 저장하거나 불러올 수 없습니다.

예제

모두 확장

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

testCase = matlab.mock.TestCase.forInteractiveUse;

엄밀한 모의 객체를 생성합니다.

[mock,behavior] = testCase.createMock('AddedMethods',"foo",'Strict',true);

지정된 메서드로 모의 객체를 생성합니다.

[mock,behavior] = testCase.createMock('AddedMethods',...
    {'one','two','three'});

지정된 이벤트로 모의 객체를 생성합니다.

[mock,behavior] = testCase.createMock(?handle,'AddedEvents',...
    {'EventA','EventB'});

생성자 입력값을 사용하여 모의 객체를 생성합니다.

[mock,behavior] = testCase.createMock(?MException,'ConstructorInputs',...
    {'My:ID','My message'});

두 개의 속성을 가진 모의 객체를 생성합니다. Prop2는 디폴트 값 false를 가집니다.

mock = testCase.createMock('AddedProperties',{'Prop1','Prop2'},...
    'DefaultPropertyValues',struct('Prop2',false))
mock = 

  Mock with properties:

    Prop1: []
    Prop2: 0

double 클래스의 isnan 메서드와 isinf 메서드를 재정의하는 모의 객체를 생성합니다.

[mock,behavior] = testCase.createMock(?double,"MockedMethods",["isnan","isinf"],...
    "ConstructorInputs",{123});

버전 내역

R2017a에 개발됨

모두 확장