matlab.mock.constraints.WasCalled class

Пакет: matlab.mock.constraints

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

Описание

The 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");

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

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