exponenta event banner

matlab.unittest.constraints.ContainsSubstring класс

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

Ограничение, указывающее строку, содержащую подстроку

Строительство

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

ContainsSubstring(substring,Name,Value) предоставляет ограничение с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары. Name должно отображаться внутри отдельных кавычек (''). Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

Входные аргументы

substring

Текст, который должен содержаться в фактическом значении, указанном как вектор символа или скаляр строки. substring может включать символы новой строки.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

'IgnoringCase'

Индикатор для игнорирования регистра, указанный как false или true (logical 0 или 1).

По умолчанию: false

'IgnoringWhitespace'

Индикатор для игнорирования пробела, указанный как false или true (logical 0 или 1). Если IgnoringWhitespace является true, MATLAB ® удаляет все символы пробела как из фактического значения, так и из ожидаемого значения, прежде чем определить, удовлетворяется ли ограничение.

Примечание

Когда IgnoringWhitespace является true, входной аргумент substring должен содержать по крайней мере один символ, не являющийся пробелом.

По умолчанию: false

'WithCount'

Количество раз substring должно содержаться в фактическом значении, указанном как положительное целое число.

Свойства

IgnoreCase

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

IgnoreWhitespace

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

Substring

Вектор символов или строковый скаляр, который должен быть включен в фактическое значение, указанное во входном аргументе, 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' дважды. Чтобы тест прошел успешно, настройте ограничение на игнорирование регистра.

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.