repeat

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

Повторите возвращаемые значения определения

Синтаксис

repeat(n,action)

Описание

repeat(n,action) повторяет то же действие многократно.

Входные параметры

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

Число раз, чтобы повторить действие в виде целого числа.

Пример 5

Заданное действие в виде экземпляра matlab.mock.actions.AssignOutputs.

Пример: AssignOutputs(true)

Пример: AssignOutputs(7,13,42)

Примеры

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

Создайте макет для класса банковского счета.

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

Задайте поведение.

import matlab.mock.actions.AssignOutputs
when(withExactInputs(behavior.isOpen),then(repeat(2,AssignOutputs(true)), ...
    then(AssignOutputs(false))));

Используйте макет.

for i = 1:3
    isAccountOpen = mock.isOpen
end
isAccountOpen = logical
   1

isAccountOpen = logical
   1

isAccountOpen = logical
   0

Советы

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

    import matlab.mock.actions.AssignOutputs
    testCase = matlab.mock.TestCase.forInteractiveUse;
    [mock,behavior] = testCase.createMock('AddedProperties',"IsJointAccount");

    Если вы повторяете действие, чтобы возвратить значение свойства true дважды, следующий код, который продолжает получать значение свойства в третий и четвертый раз, возвращает true все четыре раза.

    when(get(behavior.IsJointAccount),then(repeat(2,AssignOutputs(true))));
    for i = 1:4
        tf = mock.IsJointAccount
    end
    

    Но следующий код возвращает true дважды и false дважды.

    when(get(behavior.IsJointAccount),then(repeat(2,AssignOutputs(true)), ...
        then(AssignOutputs(false))));
    for i = 1:4
        tf = mock.IsJointAccount
    end

Введенный в R2017a