Main Content

matlab.unittest.constraints.ContainsSubstring クラス

パッケージ: matlab.unittest.constraints
スーパークラス: matlab.unittest.constraints.BooleanConstraint

部分文字列を含む string を指定する制約

構築

ContainsSubstring(substring) は、substring を含む string スカラーまたは文字ベクトルを指定する制約を作成します。この制約は、必要な部分文字列が実際の値に含まれる場合にのみ満たされます。

ContainsSubstring(substring,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加オプションをもつ制約を提供します。Name は一重引用符 ('') で囲まれていなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

入力引数

substring

実際の値に含まれなければならないテキスト。文字ベクトルまたは string スカラーとして指定します。substring には、改行文字を含めることができます。

名前と値の引数

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

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

IgnoringCase

大文字小文字の区別を無視するインジケーター。false または true (logical 0 または 1) として指定します。

既定値: false

IgnoringWhitespace

空白文字を無視するインジケーター。false または true (logical 0 または 1) として指定します。IgnoringWhitespacetrue の場合、MATLAB® は実際の値と期待される値の両方からすべての空白文字を削除したうえで、制約が満たされているかどうかを判定します。

メモ

IgnoringWhitespacetrue の場合、入力引数 substring には空白以外の文字が少なくとも 1 つ含まれていなければなりません。

既定値: false

WithCount

実際の値に substring が含まれなければならない回数。正の整数として指定します。

プロパティ

IgnoreCase

制約で大文字と小文字が区別されるかどうかを示すインジケーター。名前と値のペアの引数 'IgnoringCase' で指定します。

IgnoreWhitespace

制約で空白が区別されるかどうかを示すインジケーター。名前と値のペアの引数 'IgnoringWhitespace' で指定します。

Substring

実際の値に含まれなければならない文字ベクトルまたは string スカラー。入力引数 substring で指定します。

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.ContainsSubstring

testCase = TestCase.forInteractiveUse;

実際の値を定義します。

actVal = 'This Is One Long Message';

actVal にテキスト 'One' が含まれていることをテストします。

testCase.verifyThat(actVal, ContainsSubstring('One'))
Verification passed.

actVal にテキスト 'long' が含まれていることをテストします。

testCase.verifyThat(actVal, ContainsSubstring('long'))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ContainsSubstring failed.
    --> The value does not contain the substring.
    
    Actual char:
        This Is One Long Message
    Expected Substring:
        long

既定では、制約 ContainsSubstring は大文字と小文字を区別します。

このテストを、大文字と小文字の区別を無視してもう一度実行します。

testCase.verifyThat(actVal, ContainsSubstring('long', ...
    'IgnoringCase', true))
Verification passed.

actVal にテキスト 'is' が 2 回含まれていることをテストします。テストにパスするよう、大文字小文字の区別を無視する制約を構成します。

testCase.verifyThat(actVal, ContainsSubstring('is', ...
    'WithCount', 2, 'IgnoringCase', true))
Verification passed.

actVal にテキスト 'thisisone' が含まれていることをテストします。テストにパスするよう、空白および大文字小文字の区別を無視する制約を構成します。

testCase.verifyThat(actVal, ContainsSubstring('thisisone', ...
    'IgnoringCase', true, 'IgnoringWhitespace', true))
Verification passed.

actVal にテキスト 'longer' が含まれないことをアサートします。

testCase.assertThat(actVal, ~ContainsSubstring('longer', ...
    'IgnoringCase', true))
Assertion passed.