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