Main Content

matlab.unittest.constraints.StringComparator クラス

名前空間: matlab.unittest.constraints

string 配列、文字配列、または文字配列の cell 配列の比較演算子

説明

matlab.unittest.constraints.StringComparator クラスは、string 配列、文字配列、または文字配列の cell 配列の比較演算子を提供します。この比較演算子をテストで使用するには、StringComparator インスタンスを作成し、それを IsEqualTo 制約コンストラクターの名前と値の引数 Using の値として指定します。

作成

説明

c = matlab.unittest.constraints.StringComparator は、string 配列、文字配列、または文字配列の cell 配列の比較演算子を作成します。この比較演算子は、実際の値と期待される値が同じクラスとサイズをもつテキスト値で、それらの対応する要素が等しい場合に満たされます。

c = matlab.unittest.constraints.StringComparator(Name,Value) は、1 つ以上の名前と値の引数を使用して追加のオプションを設定します。たとえば、c = matlab.unittest.constraints.StringComparator("IgnoringCase",true) は大文字と小文字を区別しない比較演算子を作成します。

入力引数

すべて展開する

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: c = matlab.unittest.constraints.StringComparator(IgnoringCase=true)

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: c = matlab.unittest.constraints.StringComparator("IgnoringCase",true)

大文字小文字の区別を無視するかどうか。数値または logical 0 (false) または 1 (true) として指定します。既定では、比較演算子で大文字と小文字が区別されます。

この引数は IgnoreCase プロパティを設定します。

空白を無視するかどうか。数値または logical 0 (false) または 1 (true) として指定します。既定では、比較演算子で空白文字が区別されます。空白文字は、スペース (' ')、フォーム フィード ('\f')、改行 ('\n')、キャリッジ リターン ('\r')、水平タブ ('\t')、垂直タブ ('\v') です。

この引数は IgnoreWhitespace プロパティを設定します。

プロパティ

すべて展開する

大文字小文字の区別を無視するかどうか。logical 0 (false) または 1 (true) として返されます。既定では、比較演算子で大文字と小文字が区別されます。

このプロパティは名前と値の引数 IgnoringCase によって設定されます。

属性:

GetAccess
public
SetAccess
private

空白を無視するかどうか。logical 0 (false) または 1 (true) として返されます。既定では、比較演算子で空白文字が区別されます。

このプロパティは名前と値の引数 IgnoringWhitespace によって設定されます。

属性:

GetAccess
public
SetAccess
private

すべて折りたたむ

StringComparator クラスを使用して、実際の値と期待される値を比較します。

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsEqualTo
import matlab.unittest.constraints.StringComparator

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

testCase = TestCase.forInteractiveUse;

StringComparator インスタンスを使用して、文字列 "Milky Way" をそれ自体と比較します。テストはパスします。

testCase.verifyThat("Milky Way",IsEqualTo("Milky Way", ...
    "Using",StringComparator))
Verification passed.

実際の値を 'Milky Way' に変更します。実際の値と期待される値のクラスが同じでないため、テストは失敗します。

testCase.verifyThat('Milky Way',IsEqualTo("Milky Way", ...
    "Using",StringComparator))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> StringComparator failed.
        --> Classes do not match.
            
            Actual Class:
                char
            Expected Class:
                string
        
        Actual char:
            Milky Way
        Expected Value:
            "Milky Way"
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareValuesUsingStringComparatorExample.m (CompareValuesUsingStringComparatorExample) at 22

"Milky way ""Milky Way" と比較します。値が等しくないため、テストは失敗します。

testCase.verifyThat("Milky way ",IsEqualTo("Milky Way", ...
    "Using",StringComparator))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> StringComparator failed.
        --> The strings are not equal.
        
        Actual Value:
            "Milky way "
        Expected Value:
            "Milky Way"
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareValuesUsingStringComparatorExample.m (CompareValuesUsingStringComparatorExample) at 27

テストにパスするように、大文字小文字の区別および空白文字を無視する比較演算子を使用します。

testCase.verifyThat("Milky way ",IsEqualTo("Milky Way", ...
    "Using",StringComparator( ...
    "IgnoringCase",true,"IgnoringWhitespace",true)))
Verification passed.

ヒント

  • ほとんどの場合、StringComparator インスタンスを使用する必要はありません。string 配列、文字配列、および文字配列の cell 配列を含むさまざまなデータ型の等価性をテストする制約が IsEqualTo クラスで作成されます。

    StringComparator インスタンスは、IsEqualTo クラスで実行される比較をオーバーライドする必要がある場合に使用します。たとえば、実際の値と期待される値がテキストでない場合に比較を失敗とするには、StringComparator インスタンスをテストに含めます。StringComparator を使用して、cell 配列、構造体、ディクショナリ、table、および MATLAB® オブジェクト配列のパブリック プロパティに格納される値を制限することもできます。次の例では、実際の値と期待される値が数値配列であるため、MATLAB からエラーがスローされます。

    import matlab.unittest.TestCase
    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.StringComparator
    
    testCase = TestCase.forInteractiveUse;    
    exp = magic(5); 
    act = exp;
    testCase.verifyThat(act,IsEqualTo(exp,"Using",StringComparator))
    

バージョン履歴

R2013a で導入