matlab.mock.InteractionHistory.forMock

Класс: matlab.mock.InteractionHistory
Пакет: 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