withNargout

Класс: matlab.mock.MethodCallBehavior
Пакет: matlab.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
Для просмотра документации необходимо авторизоваться на сайте