Main Content

matlab.mock.InteractionHistory.forMock

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

모의 객체에서 내역 반환

설명

history = matlab.mock.InteractionHistory.forMock(mock)은 모의 객체에서 내역을 반환합니다. historymatlab.mock.InteractionHistory 객체의 배열입니다. history의 각 요소는 하나의 메서드 호출, 속성 액세스 또는 속성 수정에 대응합니다. 배열 요소는 정렬되어 있으며, 첫 번째 요소는 첫 번째로 기록된 상호 작용을 나타냅니다. 이 메서드는 공개적으로 표시되는 메서드와 속성에 대한 상호 작용만 반환합니다. 예를 들어, 다음과 같은 상호 작용은 기록되지 않습니다.

  • Hidden 메서드 호출

  • Sealed 슈퍼클래스 메서드 호출

  • 구체 슈퍼클래스 속성의 액세스 또는 수정

예제

입력 인수

모두 확장

상호 작용의 내역을 반환할 모의 객체로, 모의 객체로 지정됩니다.

예제

모두 확장

computeValue 메서드와 두 개의 속성을 사용하여 모의 객체를 생성합니다. 디폴트 값 falseProp2에 할당합니다.

tc = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = tc.createMock( ...
    'AddedMethods',{'computeValue'}, ...
    'AddedProperties',{'Prop1','Prop2'}, ...
    'DefaultPropertyValues',struct('Prop2',false));

입력값에 관계없이, 값 42를 반환하도록 computeValue 메서드의 동작을 설정합니다.

import matlab.mock.actions.AssignOutputs;
when(withAnyInputs(behavior.computeValue),AssignOutputs(42));

모의 객체와 상호 작용합니다. 우선, computeValue 메서드를 호출합니다. 그런 다음 Prop2의 값을 표시합니다. 마지막으로, Prop1의 값을 설정합니다.

n = mock.computeValue('hello');
mock.Prop2
mock.Prop1 = 13;
ans =

  logical

   0

모의 객체의 상호 작용 내역을 가져옵니다.

h = matlab.mock.InteractionHistory.forMock(mock)
h = 

  1×3 heterogeneous InteractionHistory (SuccessfulMethodCall, SuccessfulPropertyAccess, SuccessfulPropertyModification) array with properties:

    Name

Interaction summary:
  computeValue([1×1 matlab.mock.classes.Mock], 'hello')
  <Mock>.Prop2
  <Mock>.Prop1 = 13

첫 번째 InteractionHistory 객체를 검토합니다. 모의 객체와 문자형 벡터 'hello'를 입력값으로 사용하여 메서드를 호출했습니다. 메서드 출력값은 42입니다.

h(1)
ans = 

  SuccessfulMethodCall with properties:

       Name: "computeValue"
     Inputs: {[1×1 matlab.mock.classes.Mock]  'hello'}
    Outputs: {[42]}

Interaction summary:
  computeValue([1×1 matlab.mock.classes.Mock], 'hello')

대안

matlab.mock.TestCase 인스턴스에서 getMockHistory 메서드를 사용하여 동일한 상호 작용의 내역을 가져올 수 있습니다. 예를 들어, matlab.mock.TestCase 인스턴스 tc와 모의 객체 mock이 있는 경우, 다음 메서드 호출은 동일합니다.

h = matlab.mock.InteractionHistory.forMock(mock);
h = tc.getMockHistory(mock);

forMock 메서드를 사용하기 위해 matlab.mock.TestCase 인스턴스에 액세스할 필요가 없습니다.

버전 내역

R2018a에 개발됨

참고 항목