exponenta event banner

matlab.mock.actions.Invoke класс

Пакет: matlab.mock.actions

Вызвать дескриптор функции при вызове метода

Описание

Чтобы указать, что фреймворк вызывает дескриптор функции для определения выходных данных при вызове метода имитационного объекта, используйте команду Invoke класс. Это действие отличается от AssignOutputs , которое возвращает значения, определенные при создании AssignOutputs экземпляр.

Строительство

action = invoke(fh) вызывает функцию, заданную fh при вызове метода.

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

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

Функция для вызова при вызове метода объекта mock, заданная как дескриптор функции.

Фреймворк передает дескриптору функции те же входные данные, что и метод имитации. Поэтому fh обычно содержит список аргументов. Если функция не взаимодействует с макетом, например, обращаясь к свойству, можно использовать тильду (~) в списке аргументов, чтобы игнорировать имитационный объект. Фреймворк запрашивает то же количество выходов, что и вызов имитационного метода.

Пример: @(~)randi(6)

Пример: @(cmock)myFunction('hello')

Пример: @isempty

Свойства

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

Функция для вызова при вызове метода объекта mock, сохраненная как дескриптор функции.

Методы

повторитьсяПовторный дескриптор функции вызова
тогдаДействие для имитации взаимодействия с объектом или действие после вызова дескриптора функции

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создание макета для класса, который представляет 6-стороннюю матрицу и включает в себя макет roll способ.

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock("AddedMethods","roll");

Определите поведение, чтобы возвращать случайное целое число от 1 до 6 каждый раз roll вызывается метод.

import matlab.mock.actions.Invoke
when(withExactInputs(behavior.roll),Invoke(@(~)randi(6)))

Назовите насмешку roll способ.

val = mock.roll
val = 5
Представлен в R2018b