matlab.mock. InteractionHistory.forMock

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

Возвратите историю в фиктивный объект

Синтаксис

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

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

Однако вам не нужен доступ к экземпляру matlab.mock.TestCase, чтобы использовать метод forMock.

Смотрите также

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

Была ли эта тема полезной?