exponenta event banner

повториться

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

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

Синтаксис

repeat(action,n)

Описание

repeat(action,n) повторяет одно и то же действие n времена. Входные аргументы можно указывать в любом порядке. То есть repeat(action,n) и repeat(n,action) оба повторяют действие n времена.

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

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

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

Пример: action = AssignOutputs(true)

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

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

Пример: 5

Примеры

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

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

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

Укажите поведение.

import matlab.mock.actions.AssignOutputs
when(withExactInputs(behavior.isOpen), ...
    AssignOutputs(true).repeat(2).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),AssignOutputs(true).repeat(2))
    for i = 1:4
        tf = mock.IsJointAccount
    end
    

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

    when(get(behavior.IsJointAccount), ...
        AssignOutputs(true).repeat(2).then(AssignOutputs(false)))
    for i = 1:4
        tf = mock.IsJointAccount
    end
Представлен в R2017a