matlab.mock.AnyArguments class

Пакет: matlab.mock

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

Описание

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

Конструкция

AnyArguments соответствует неограниченному, неопределенному количеству аргументов, включая нуль. При определении поведения mock или квалифицированных взаимодействий mock задайте 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');

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

The 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 не делает. The MethodCallBehavior класс предоставляет дополнительные методы для задания поведения и записи взаимодействий, таких как спецификация точных входов или ряда выходов.

См. также

Введенный в R2017a