exponenta event banner

getMockHistory

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

Вернуть историю имитационных взаимодействий из TestCase случай

Описание

пример

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

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

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

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

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

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

Экземпляр тестового случая, указанный как matlab.mock.TestCase объект.

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

Примеры

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

Создание макета с помощью 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 = tc.getMockHistory(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.InteractionHistory.forMock способ. Например, при наличии matlab.mock.TestCase случай tcи издевательский объект mock, следующие вызовы метода эквивалентны.

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

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

См. также

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