matlab.mock.actions.Invoke class

Пакет: matlab.mock.actions

Активируйте указатель на функцию, когда вызывается метод

Описание

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

Конструкция

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

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

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

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

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

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

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

Пример: @isempty

Свойства

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

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

Методы

повторитьсяПовторите указатель на функцию вызова
тогдаДействие для взаимодействия с объектом 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