assertEqual

Класс: matlab.unittest.qualifications. Assertable
Пакет: matlab.unittest.qualifications

Значение assert равно заданному значению

Синтаксис

assertEqual(assertable,actual,expected)
assertEqual(___,Name,Value)
assertEqual(___,diagnostic)

Описание

assertEqual(assertable,actual,expected) утверждает, что actual строго равно expected. Если expected не является MATLAB® или Java® объект, actual и expected должен иметь один и тот же класс, размер и значение для прохождения утверждения assertEqual. сравнивает actual и expected так же, как и IsEqualTo ограничение.

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

assertEqual(___,diagnostic) также связывает диагностическую информацию в diagnostic с проверкой. В зависимости от конфигурации исполнителя тестов строение тестирования может отображать диагностику, когда проверка проходит или не проходит. По умолчанию среда отображает диагностику только в случае сбоя проверки. Поведение по умолчанию можно переопределить путем настройки исполнителя тестов. Для примера используйте DiagnosticsOutputPlugin образец для отображения как сбойной, так и проходящей диагностики событий.

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

assertable

The matlab.unittest.TestCase образец, который используется для прохождения или непрохождения проверки типа «assertion» в сочетании с тестовой средой.

actual

Значение для тестирования.

expected

Ожидаемое значение.

diagnostic

Диагностическая информация, относящаяся к проверке, указывается как одно из следующего:

  • Строковые массивы

  • Символьный массив

  • указатель на функцию

  • matlab.unittest.diagnostics.Diagnostic объект

Значения диагностики могут быть нескалярными. Для получения дополнительной информации смотрите matlab.unittest.diagnostics.Diagnostic.

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

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

'AbsTol'

Абсолютная погрешность, заданный как числовой массив. Допуск применяется только к значениям совпадающего типа данных. Значение может быть скаляром или массивом того же размера, что и фактическое и ожидаемые значения.

Чтобы абсолютная погрешность было удовлетворяема, abs(expected-actual) <= absTol должно быть true.

'RelTol'

Относительная погрешность, заданный как числовой массив. Допуск применяется только к значениям совпадающего типа данных. Значение может быть скаляром или массивом того же размера, что и фактическое и ожидаемые значения.

Чтобы относительная погрешность было удовлетворяема, abs(expected-actual) <= relTol.*abs(expected) должно быть true.

Примеры

расширить все

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

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

Предположим, что числовое значение равно самому себе.

assertEqual(testCase,5,5)
Assertion passed.

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

assertEqual(testCase,[5 5],5)
Assertion failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    assertEqual failed.
    --> Sizes do not match.
        
        Actual size:
             1     2
        Expected size:
             1     1
    
    Actual Value:
         5     5
    Expected Value:
         5
Assertion failed.

Задайте, если int8 равен int16.

testCase = matlab.unittest.TestCase.forInteractiveUse;
assertEqual(testCase,int8(5),int16(5))
Assertion failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    assertEqual failed.
    --> Classes do not match.
        
        Actual Class:
            int8
        Expected Class:
            int16
    
    Actual Value:
      int8
    
       5
    Expected Value:
      int16
    
       5
Assertion failed.

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

Утверждайте, что массив ячеек равен себе.

testCase = matlab.unittest.TestCase.forInteractiveUse;
assertEqual(testCase,{'cell',struct,5},{'cell',struct,5})
Assertion passed.

Задайте, если 4.95 равно 5.

testCase = matlab.unittest.TestCase.forInteractiveUse;
assertEqual(testCase,4.95,5)
Assertion failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    assertEqual failed.
    --> The numeric values are not equal using "isequaln".
    --> Failure table:
            Actual    Expected           Error              RelativeError    
            ______    ________    ___________________    ____________________
        
             4.95        5        -0.0499999999999998    -0.00999999999999996
    
    Actual Value:
       4.950000000000000
    Expected Value:
         5
Assertion failed.

Утвердите, что различие между фактическим значением 1.5 и ожидаемое значение 2 находится внутри 1.

assertEqual(testCase,1.5,2,'AbsTol',1)
Assertion passed.

Предположим, что различие между фактическим и ожидаемым значениями меньше 10%. Отобразите диагностическую информацию после отказа.

assertEqual(testCase,1.5,2,'RelTol',0.1,...
    'Difference between actual and expected exceeds relative tolerance')
Assertion failed.
    ----------------
    Test Diagnostic:
    ----------------
    Difference between actual and expected exceeds relative tolerance
    ---------------------
    Framework Diagnostic:
    ---------------------
    assertEqual failed.
    --> The numeric values are not equal using "isequaln".
    --> The error was not within relative tolerance.
    --> Failure table:
            Actual    Expected    Error    RelativeError    RelativeTolerance
            ______    ________    _____    _____________    _________________
        
             1.5         2        -0.5         -0.25               0.1       
    
    Actual Value:
       1.500000000000000
    Expected Value:
         2
Assertion failed.

Совет

  • Этот метод функционально эквивалентен любому из следующих:

    import matlab.unittest.constraints.IsEqualTo;
    assertable.assertThat(actual, IsEqualTo(expected));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.AbsoluteTolerance;
    assertable.assertThat(actual, IsEqualTo(expected, ...
        'Within', AbsoluteTolerance(abstol)));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.RelativeTolerance;
    assertable.assertThat(actual, IsEqualTo(expected, ...
        'Within', RelativeTolerance(reltol)));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.AbsoluteTolerance;
    import matlab.unittest.constraints.RelativeTolerance;
    assertable.assertThat(actual, IsEqualTo(expected, ...
        'Within', AbsoluteTolerance(abstol) | RelativeTolerance(reltol)));

    При использовании IsEqualTo существует больше функциональности, AbsoluteTolerance, и RelativeTolerance ограничения непосредственно через assertThat.

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

    • Используйте верификацию проверок для создания и записи отказов без выдачи исключения. Поскольку верификации не выдают исключения, все содержания теста запусков к завершению, даже когда верификация отказов произойти. Как правило, верификации типа «verification» являются основой для модульного теста, поскольку они обычно не требуют раннего выхода из теста. Используйте другие типы проверки для выявления нарушений предусловий или неправильной настройки теста. Для получения дополнительной информации смотрите matlab.unittest.qualifications.Verifiable.

    • Используйте критическое утверждение проверок, чтобы прервать тестовый сеанс после отказа. Эти типы проверки применяются, когда тип отказа настолько принципиален, что нет точки продолжать тестирование. Эти виды проверки также применяются фиксатором когда отключение не восстанавливает состояние MATLAB правильно, и лучше прекратить тестирование и начать новую сессию. Для получения дополнительной информации смотрите matlab.unittest.qualifications.FatalAssertable.

    • Используйте проверки типа «assumption», чтобы убедиться, что тестовая среда соответствует предусловиям, которые не приводят к непройденному тесту. Нарушение условий приводит к отфильтрованным тестам, а среда тестирования помечает тесты как Incomplete. Для получения дополнительной информации смотрите matlab.unittest.qualifications.Assumable.

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