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 Класс 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

Была ли эта тема полезной?