Main Content

matlab.unittest.constraints.HasField 类

命名空间: matlab.unittest.constraints
超类: matlab.unittest.constraints.BooleanConstraint

测试结构体数组是否具有指定字段

描述

matlab.unittest.constraints.HasField 类提供一个约束来测试值是否为具有指定字段的结构体数组。

创建对象

描述

示例

c = matlab.unittest.constraints.HasField(field) 创建一个约束来测试值是否为具有指定字段的结构体数组并设置 Field 属性。具有名为 field 的字段的结构体数组满足该约束。

属性

全部展开

预期字段的名称,以字符向量形式返回。在创建约束的过程中,将此属性的值指定为字符串标量或字符向量。

属性:

GetAccess
public
SetAccess
private

示例

全部折叠

使用 HasField 约束测试一个结构体。

首先,导入此示例中使用的类。

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

创建一个供交互测试的测试用例。

testCase = TestCase.forInteractiveUse;

创建一个包含两个字段的结构体。

s = struct("ID",10,"score",90);

验证 s 是具有 "ID" 字段的结构体。

testCase.verifyThat(s,HasField("ID"))
Verification passed.

测试该结构体是否有 "Score" 字段。测试失败,原因字段名称比较区分大小写。

testCase.verifyThat(s,HasField("Score"))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    HasField failed.
    --> The value did not have the expected field.
        
        Actual Fieldnames:
                'ID'
                'score'
        Expected Fieldname:
                'Score'
    
    Actual Value:
      struct with fields:
    
           ID: 10
        score: 90

测试该结构体是否同时具有 "ID""score" 字段。测试通过。

testCase.verifyThat(s,HasField("ID") & HasField("score"))
Verification passed.

确认该结构体不包含 "Name" 字段。

testCase.verifyThat(s,~HasField("Name"))
Verification passed.

版本历史记录

在 R2013b 中推出

另请参阅