getMockHistory

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

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

Синтаксис

history = getMockHistory(testcase,mock)

Описание

пример

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