matlab.mock.constraints.WasSet class

Пакет: matlab.mock.constraints

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

Описание

The 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