exponenta event banner

matlab.mock. InteractionHistory.forMock

Класс: matlab.mock.InteracureHistory
Пакет: matlab.mock

Возврат истории из имитационного объекта

Описание

пример

history = matlab.mock.InteractionHistory.forMock(mock) возвращает историю из имитационного объекта. history является массивом matlab.mock.InteractionHistory объекты. Каждый элемент в history соответствует одному вызову метода, доступу к свойству или изменению свойства. Элементы массива упорядочены, причем первый элемент указывает первое записанное взаимодействие. Этот метод возвращает взаимодействия только с общедоступными методами и свойствами. Например, следующие взаимодействия не регистрируются:

  • Звонки в Hidden методы

  • Звонки в Sealed методы суперкласса

  • Доступ или изменение свойств сверхкласса бетона

Входные аргументы

развернуть все

Макет для возврата истории взаимодействий, заданной как макетный объект.

Примеры

развернуть все

Создание макета с помощью computeValue способ и два свойства. Назначение значения по умолчанию false кому Prop2.

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

Настройка поведения computeValue способ возврата значения 42 независимо от входных значений.

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')

Альтернативы

Можно получить одинаковую историю взаимодействий с помощью getMockHistory метод на matlab.mock.TestCase экземпляр. Например, при наличии matlab.mock.TestCase случай tcи издевательский объект mock, следующие вызовы метода эквивалентны.

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

Однако доступ к matlab.mock.TestCase для использования forMock способ.

См. также

Представлен в R2018a