matlab.mock.InteractionHistory.forMock

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

Возвращает историю из объекта mock

Описание

пример

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

  • Вызовы в Hidden методы

  • Вызовы в Sealed методы суперкласса

  • Доступы или модификации свойств бетонного суперкласса

Входные параметры

расширить все

Макет, чтобы вернуть историю взаимодействий, заданную как объект mock.

Примеры

расширить все

Создайте макет с 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 объект. Метод вызывался с объектом mock и вектором символов '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