repeat

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

Повторите исключение выдачи

Синтаксис

repeat(action,n)

Описание

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

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

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

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

Пример: action = ThrowException

Пример: action = ThrowException(MException('Account:deposit:Negative','Deposit amount must be positive.'))

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

Пример 5

Примеры

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

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

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

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

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

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

isAccountOpen = mock.isOpen

Error using matlab.mock.internal.MockContext/createMockObject/mockMethodCallback (line 382)
The following method call was specified to throw an exception:
	isOpen([1×1 matlab.mock.classes.Mock])
isAccountOpen = mock.isOpen

Error using matlab.mock.internal.MockContext/createMockObject/mockMethodCallback (line 382)
The following method call was specified to throw an exception:
	isOpen([1×1 matlab.mock.classes.Mock])
isAccountOpen = mock.isOpen
isAccountOpen =

  logical

   0

Советы

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

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

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

    when(get(behavior.IsJointAccount),ThrowException().repeat(2))
    tf = mock.IsJointAccount
    tf = mock.IsJointAccount
    tf = mock.IsJointAccount

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

    import matlab.mock.actions.AssignOutputs
    when(get(behavior.IsJointAccount), ...
        ThrowException().repeat(2).then(AssignOutputs(false)))
    tf = mock.IsJointAccount
    tf = mock.IsJointAccount
    tf = mock.IsJointAccount
Введенный в R2017a
Для просмотра документации необходимо авторизоваться на сайте