повторение

Класс: matlab.mock.actions. Присвоение Выходных параметров
Пакет: matlab.mock.actions

Повторите то же действие многократно

Синтаксис

повторитесь (n, действие)

Описание

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

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

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

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

Пример 5

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

(TRUE) Пример: AssignOutputs

Пример: 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

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