matlab.unittest.constraints.StringComparator class

Пакет: matlab.unittest.constraints

Компаратор для двух строк, символьных массивов или массивов ячеек символьных массивов

Конструкция

StringComparator создает компаратор для двух строк, символьных массивов или массивов ячеек символьных массивов. Компаратору удовлетворяют, равны ли эти два значения. По умолчанию, StringComparator проверки, что значения имеют равный размер и класс, и затем выполняют чувствительное к регистру сравнение каждого значения.

StringComparator(Name,Value) создает компаратор с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы.

Входные параметры

Аргументы name-value

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

IgnoringCase

Индикатор, если компаратор нечувствителен к регистру в виде false или true логический0 или 1). Когда это - false, компаратор чувствителен к регистру.

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

IgnoringWhitespace

Индикатор, если компаратор нечувствителен к пробельным символам в виде false или true логический0 или 1). Когда это - false, компаратор чувствителен к пробельным символам. Пробельные символы состоят из пробела, перевода формата, новой строки, возврата каретки, горизонтальной вкладки и вертикальной вкладки.

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

Свойства

IgnoreCase

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

IgnoreWhitespace

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

Примеры

свернуть все

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

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

testCase = TestCase.forInteractiveUse;

Проверьте, что фактические и ожидаемые векторы символов являются равным использованием компаратора строки.

expected = 'coffee';
actual = 'coffee';
testCase.verifyThat(actual,IsEqualTo(expected, ...
    'Using', StringComparator))
Interactive verification passed.

Измените фактический вектор символов и повторите сравнение.

expected = 'coF Fee';
testCase.verifyThat(actual,IsEqualTo(expected, ...
    'Using', StringComparator))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> StringComparator failed.
    --> The character arrays are not equal.
    
    Actual char:
        coffee
    Expected char:
        coF Fee

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

testCase.verifyThat(actual,IsEqualTo(expected, ...
    'Using', StringComparator('IgnoringCase', true, ...
    'IgnoringWhitespace', true)))
Interactive verification passed.

Советы

  • В большинстве случаев вы не обязаны использовать StringComparator объект. IsEqualTo класс создает ограничение, чтобы протестировать на равенство между данными различных типов, включая строки.

    Используйте StringComparator возразите, когда необходимо будет заменить сравнение, выполняемое IsEqualTo класс. Например, если вы хотите, чтобы сравнение перестало работать, когда фактические и ожидаемые значения являются нетекстовыми, включают StringComparator возразите в своем тесте. Также можно использовать StringComparator ограничить значения, содержавшиеся в структурах, массивах ячеек и таблицах. В этом примере, MATLAB® выдает исключение, потому что фактические и ожидаемые значения являются числовыми массивами.

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

Смотрите также

|

Введенный в R2013a
Для просмотра документации необходимо авторизоваться на сайте