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 のフィールドを含む構造体配列で満たされます。

プロパティ

すべて展開する

期待されるフィールドの名前。文字ベクトルとして返されます。このプロパティの値は、制約の作成時に string スカラーまたは文字ベクトルとして指定します。

属性:

GetAccess
public
SetAccess
private

すべて折りたたむ

HasField 制約を使用して、構造体をテストします。

最初に、この例で使用するクラスをインポートします。

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

対話型テスト用にテスト ケースを作成します。

testCase = TestCase.forInteractiveUse;

2 つのフィールドをもつ構造体を作成します。

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 で導入

参考

トピック