exponenta event banner

withNargout

Класс: matlab.mock.MethodCallBehavior
Пакет: matlab.mock

Укажите вызов метода объекта mock с определенным числом выходных аргументов

Синтаксис

callBehavior = withNargout(n,behavior)

Описание

callBehavior = withNargout(n,behavior) возвращает MethodCallBehavior объект для определения поведения при вызове метода mock object с определенным числом выходных аргументов.

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

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

Число выходов метода имитационного объекта, указанное как целое число.

Пример: 3

Поведение макета, указанного как matlab.mock.MethodCallBehavior экземпляр. Создание экземпляра matlab.mock.MethodCallBehaviorвызовите метод объекта поведения.

Пример: myMockBehavior.myMockedMethod

Примеры

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

Создайте макет для класса треугольника.

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

Настройка поведения. Если sideLengths вызывается только с объектом в качестве входа и с одним выходом, затем возвращается массив из трех значений. Если он вызывается только с объектом в качестве входа и с тремя выходами, то возвращает три значения. В противном случае возвращает значение по умолчанию для пустого массива.

import matlab.mock.actions.AssignOutputs
when(withNargout(1,withExactInputs(behavior.sideLengths)), ...
    AssignOutputs([1 2 3]))
when(withNargout(3,withExactInputs(behavior.sideLengths)), ...
    AssignOutputs(1,2,3))

Позвоните в sideLengths с только объектом в качестве входа и одним выходом.

len = mockQuad.sideLengths
len = 1×3

     1     2     3

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

import matlab.mock.constraints.WasCalled
testCase.verifyThat(withNargout(1, ...
    withExactInputs(behavior.sideLengths)),WasCalled)
Verification passed.

Убедитесь, что sideLengths метод не был вызван с тремя выходными аргументами.

testCase.verifyThat(withNargout(3, ...
    withExactInputs(behavior.sideLengths)),~WasCalled)
Verification passed.
Представлен в R2017a