exponenta event banner

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

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

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

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

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

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

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

superstring

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

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

Укажите дополнительные пары, разделенные запятыми 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, входной аргумент superstring должен содержать по крайней мере один символ, не являющийся пробелом.

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

'WithCount'

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

В структуре тестирования используется count для подсчета вхождений фактического значения. При указании пустой подстроки count функция подсчитывает пустые строки в начале и конце superstring и между каждой парой его символов. Другими словами, если superstring имеет N символов, он также имеет N+1 пустые подстроки.

Свойства

IgnoreCase

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

IgnoreWhitespace

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

Superstring

Суперстрока, включающая фактическое значение, указанное во входном аргументе, superstring.

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте тестовый пример для интерактивного тестирования.

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSubstringOf

testCase = TestCase.forInteractiveUse;

Определите строку фактического значения.

S = string('This Is One Long String');

Проверка фактического значения 'One' содержится в S.

testCase.verifyThat('One', IsSubstringOf(S))
Verification passed.

Проверка фактического значения 'long' содержится в S.

testCase.verifyThat('long', IsSubstringOf(S))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsSubstringOf failed.
    --> The value is not found within the superstring.
    
    Actual char:
        long
    Expected Superstring:
        "This Is One Long String"

По умолчанию IsSubstringOf ограничение чувствительно к регистру.

Повторите тест, игнорируя случай.

testCase.verifyThat('long', IsSubstringOf(S, ...
    'IgnoringCase', true))
Verification passed.

Проверка фактического значения 'is' содержится в S дважды. Чтобы тест прошел успешно, настройте ограничение на игнорирование регистра.

testCase.verifyThat('is', IsSubstringOf(S, ...
    'WithCount', 2, 'IgnoringCase', true))
Verification passed.

Проверка фактического значения 'thisisone' содержится в S. Чтобы тест прошел успешно, настройте ограничение на игнорирование пробела и регистра.

testCase.verifyThat('thisisone', IsSubstringOf(S, ...
    'IgnoringCase', true, 'IgnoringWhitespace', true))
Verification passed.

Подтвердить, что фактическое значение 'longer' не содержится в S.

testCase.assertThat('Longer', ~IsSubstringOf(S))
Assertion passed.