matlab.unittest.constraints.HasField class

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.BooleanConstraint

Ограничительная структура определения, содержащая конкретное поле

Конструкция

HasField(fieldname) обеспечивает ограничительную структуру определения, содержащую конкретное поле, fieldname. Ограничению удовлетворяют, является ли фактическое значение структурой, и та структура содержит поле под названием fieldname.

Входные параметры

fieldname

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

Свойства

Field

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

Примеры

свернуть все

Создайте TestCase для интерактивного тестирования.

import matlab.unittest.TestCase
import matlab.unittest.constraints.HasField

testCase = TestCase.forInteractiveUse;

Задайте следующую структуру, S, с двумя полями.

S = struct('Tag', 123, 'Serial', 345);

Проверьте, что структура имеет 'Tag' поле .

testCase.verifyThat(S, HasField('Tag'))
Interactive verification passed.

Проверьте, что структура имеет 'tag' поле .

testCase.verifyThat(S, HasField('tag'))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
HasField failed.
--> The value did not have the expected field.
    
    Actual Fieldnames:
            'Tag'
            'Serial'
    Expected Fieldname:
            'tag'

Actual Value:
           Tag: 123
        Serial: 345

Верификация перестала работать, потому что сравнение имени поля является чувствительным к регистру.

Проверьте, что структура имеет 'Tag' поле .

testCase.verifyThat(S, HasField('Tag'))
Interactive verification passed.

Проверьте, что структура имеет обоих 'Tag' и 'Serial' поле .

testCase.verifyThat(S, HasField('Tag') & HasField('Serial'))
Interactive verification passed.

Проверьте, что структура не имеет 'Name' поле .

testCase.verifyThat(S, ~HasField('Name'))
Interactive verification passed.