exponenta event banner

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

Пакет: matlab.mock.constraints

Ограничение, определяющее взаимодействие набора свойств

Описание

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

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

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

constraint = WasSet(Name,Value) предоставляет ограничение с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары. Например, WasSet('ToValue',42) создает ограничение, которое удовлетворяется, если значение свойства равно 42, и WasSet('ToValue',42,'WithCount',3) создает ограничение, которое удовлетворяется, если для значения свойства задано значение 42 ровно 3 раза.

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

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Указанные значения свойств, заданные как скаляр, вектор, матрица или многомерный массив. Значения могут быть любого типа данных и относиться к свойству, указанному поведением.

Пример: 'Joe'

Пример: [1 2 3;4 5 6]

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

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

Пример: 5

Свойства

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

Значения свойств, заданные как скаляр, вектор, матрица или многомерный массив. Значения могут быть любого типа данных и относиться к свойству, указанному поведением.

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

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

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

Примеры

свернуть все

Создайте макет для класса персон.

testCase = matlab.mock.TestCase.forInteractiveUse;
[fakePerson,behavior] = testCase.createMock('AddedProperties',["Name" "Age"]);

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

fakePerson.Name = 'David';

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

import matlab.mock.constraints.WasSet
testCase.verifyThat(behavior.Name,WasSet)
Interactive verification passed.
testCase.verifyThat(behavior.Age,~WasSet)
Interactive verification passed.
testCase.verifyThat(behavior.Name,WasSet('ToValue','David'))
Interactive verification passed.
testCase.verifyThat(behavior.Name,WasSet('WithCount',1))
Interactive verification passed.

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

testCase.verifyThat(behavior.Name,~WasSet)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
Negated WasSet failed.
--> Property 'Name' was unexpectedly set to the specified value 1 time(s).
--> Observed property set(s) to any value:
        <Mock>.Name = 'David'

Specified property set:
    PropertySetBehavior
        <Mock>.Name = <IsAnything constraint>
testCase.verifyThat(behavior.Age,WasSet)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasSet failed.
--> Property 'Age' was never set.

Specified property set:
    PropertySetBehavior
        <Mock>.Age = <IsAnything constraint>
testCase.verifyThat(behavior.Name,WasSet('ToValue','Andy'))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasSet failed.
--> Property 'Name' was not set to the specified value.
--> Observed property set(s) to any value:
        <Mock>.Name = 'David'

Specified property set:
    PropertySetBehavior
        <Mock>.Name = 'Andy'
testCase.verifyThat(behavior.Name,WasSet('WithCount',5))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
WasSet failed.
--> Property 'Name' was not set to the specified value the expected number of times.
    
    Actual property set count:
             1
    Expected property set count:
             5
--> Observed property set(s) to any value:
        <Mock>.Name = 'David'

Specified property set:
    PropertySetBehavior
        <Mock>.Name = <IsAnything constraint>
Представлен в R2017a