exponenta event banner

класс matlab.mock.AnyArguments

Пакет: matlab.mock

Сопоставить любое количество аргументов

Описание

Используйте AnyArguments , чтобы соответствовать любому числу аргументов при указании макетного поведения или определении макетных взаимодействий.

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

AnyArguments соответствует неограниченному, неопределенному числу аргументов, включая ноль. При определении имитационного поведения или определении имитационных взаимодействий укажите AnyArguments в качестве последнего аргумента в списке аргументов.

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

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

Примеры

свернуть все

Соответствует любому числу аргументов.

import matlab.mock.AnyArguments
import matlab.mock.actions.ThrowException

testCase = matlab.mock.TestCase.forInteractiveUse;

% Create a mock for a bank account class
[saboteurAccount,behavior] = testCase.createMock('AddedMethods',"deposit");

% Define behavior to throw exception with any input argument
when(behavior.deposit(AnyArguments),ThrowException)

% All of the following interactions throw an exception:
saboteurAccount.deposit;
saboteurAccount.deposit(-10);
saboteurAccount.deposit(10);
saboteurAccount.deposit('a','b','c');

Альтернативы

AnyArguments функционально аналогичен использованию withAnyInputs способ matlab.mock.MethodCallBehavior класс. Например, следующие кодовые блоки аналогичны.

% Using the AnyArguments class
import matlab.mock.AnyArguments;
testCase.verifyCalled(behavior.myMethod(AnyArguments));

% Using the withAnyInputs method
testCase.verifyCalled(withAnyInputs(behavior.myMethod))
Однако AnyArguments требует, чтобы макет был первым входным аргументом, и withAnyInputs не имеет. MethodCallBehavior класс предоставляет дополнительные методы для определения поведения и взаимодействия записей, такие как определение точных входных данных или количества выходных данных.

См. также

Представлен в R2017a