exponenta event banner

matlab.mock.constraints.WasCalled класс

Пакет: matlab.mock.constraints

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

Описание

WasCalled ограничение создает сбой квалификации, если фактическое значение не является MethodCallBehavior экземпляр, или если метод, который соответствует MethodCallBehavior не был вызван указанное количество раз.

Строительство

constraint = WasCalled предоставляет ограничение, определяющее вызов метода. Если метод был вызван хотя бы один раз, ограничение выполняется. Чтобы определить, что метод не был вызван, отмените WasCalled зависимость с тильдой (~) оператор.

constraint = WasCalled('WithCount',n) предоставляет ограничение, удовлетворяющее при точном вызове метода n времена.

Если вы отрицаете WasCalled с таким синтаксисом, если метод не был вызван точно n раз, ограничение проходит. Например, если метод вызывался четыре раза, ~WasCalled('WithCount',3) пропуска и ~WasCalled('WithCount',4) не удается.

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

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

Число вызовов метода, указанное как целое число.

Свойства

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

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

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

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

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

Используйте имитационную учетную запись.

fakeAccount.deposit(10);
fakeAccount.deposit(20);
fakeAccount.deposit(10);

Построить проходные кейсы.

import matlab.mock.constraints.WasCalled
testCase.verifyThat(behavior.deposit(10),WasCalled)
Interactive verification passed.
testCase.verifyThat(behavior.deposit(10),WasCalled('WithCount',2))
Interactive verification passed.
import matlab.unittest.constraints.IsGreaterThan
testCase.verifyThat(behavior.deposit(IsGreaterThan(100)),~WasCalled)
Interactive verification passed.

Создание неудачных случаев.

testCase.verifyThat(behavior.deposit(100),WasCalled);
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasCalled failed.
--> Method 'deposit' was not called with the specified signature.
--> Observed method call(s) with any signature:
        deposit([1×1 matlab.mock.classes.Mock], 10)
        deposit([1×1 matlab.mock.classes.Mock], 20)
        deposit([1×1 matlab.mock.classes.Mock], 10)

Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock>, 100)
testCase.verifyThat(behavior.deposit(20),WasCalled('WithCount',2))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasCalled failed.
--> Method 'deposit' was not called the expected number of times with the specified signature.
    
    Actual method call count:
             1
    Expected method call count:
             2
--> Observed method call(s) with any signature:
        deposit([1×1 matlab.mock.classes.Mock], 10)
        deposit([1×1 matlab.mock.classes.Mock], 20)
        deposit([1×1 matlab.mock.classes.Mock], 10)

Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock, 20)
testCase.verifyThat(behavior.deposit(IsGreaterThan(50)),WasCalled)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasCalled failed.
--> Method 'deposit' was not called with the specified signature.
--> Observed method call(s) with any signature:
        deposit([1×1 matlab.mock.classes.Mock], 10)
        deposit([1×1 matlab.mock.classes.Mock], 20)
        deposit([1×1 matlab.mock.classes.Mock], 10)

Specified method call:
    MethodCallBehavior
        [...] = deposit(<Mock>, <IsGreaterThan constraint>)
Представлен в R2017a