verifyEqual

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

Проверьте, что значение равно заданному значению

Описание

пример

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

пример

verifyEqual(testCase,actual,expected,diagnostic) также сопоставляет диагностическую информацию в diagnostic с проверкой.

пример

verifyEqual(___,Name,Value) проверяет равенство с дополнительными опциями, заданными одними или несколькими аргументами name-value. Задайте аргументы name-value после всех аргументов в любом из предыдущих синтаксисов. В R2021a и ранее, задайте аргументы name-value перед diagnostic.

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

развернуть все

Объект теста в виде экземпляра matlab.unittest.qualifications.Verifiable класс. Поскольку matlab.unittest.TestCase класс разделяет на подклассы matlab.unittest.qualifications.Verifiable и наследовал его методы, testCase обычно matlab.unittest.TestCase экземпляр.

Значение, чтобы протестировать в виде значения любого типа данных.

Ожидаемое значение в виде значения любого типа данных.

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

В зависимости от настройки исполнителя тестов среда тестирования может отобразить диагностику когда передачи проверки или сбои. По умолчанию среда отображает диагностику только, когда проверка перестала работать. Можно заменить поведение по умолчанию путем настройки исполнителя тестов. Например, используйте DiagnosticsOutputPlugin экземпляр, чтобы отобразить и провальную и передающую диагностику события.

Пример: "My Custom Diagnostic"

Пример: @dir

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

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

Пример: verifyEqual(testCase,1.5,2,"AbsTol",1) проверяет что различие между фактическим значением 1.5 и ожидаемое значение 2 в 1.

Абсолютная погрешность в виде числового массива. Размеры AbsTol и expected должен быть то же самое или быть совместимым. Смотрите Совместимые Размеры Массивов для Основных Операций для получения дополнительной информации о совместимых массивах.

Допуск применяется только к значениям совпадающего типа данных. Для абсолютной погрешности, которой удовлетворят, abs(expected-actual) <= AbsTol должен быть true.

Относительная погрешность в виде числового массива. Размеры RelTol и expected должен быть то же самое или быть совместимым. Смотрите Совместимые Размеры Массивов для Основных Операций для получения дополнительной информации о совместимых массивах.

Допуск применяется только к значениям совпадающего типа данных. Для относительной погрешности, которой удовлетворят, abs(expected-actual) <= RelTol.*abs(expected) должен быть true.

Примеры

развернуть все

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

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

Проверьте, что числовое значение равно себе.

verifyEqual(testCase,5,5)
Verification passed.

Сравните значения различных размеров. Тестовые сбои.

verifyEqual(testCase,[5 5],5)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> Sizes do not match.
        
        Actual size:
             1     2
        Expected size:
             1     1
    
    Actual Value:
         5     5
    Expected Value:
         5
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareNumericValuesExample.m (CompareNumericValuesExample) at 18

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

Сравните два числовых значения различных классов. Тестовые сбои.

verifyEqual(testCase,int8(5),int16(5),"Classes must match.")
Verification failed.
    ----------------
    Test Diagnostic:
    ----------------
    Classes must match.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> Classes do not match.
        
        Actual Class:
            int8
        Expected Class:
            int16
    
    Actual Value:
      int8
    
       5
    Expected Value:
      int16
    
       5
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareClassesExample.m (CompareClassesExample) at 12

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

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

Сравните массив ячеек с собой. Тестовые передачи.

verifyEqual(testCase,{'cell',struct,5},{'cell',struct,5})
Verification passed.

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

Протестируйте если фактическое значение 1.5 равно ожидаемому значению 2. Тестовые сбои.

verifyEqual(testCase,1.5,2)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> The numeric values are not equal using "isequaln".
    --> Failure table:
            Actual    Expected    Error    RelativeError
            ______    ________    _____    _____________
        
             1.5         2        -0.5         -0.25    
    
    Actual Value:
       1.500000000000000
    Expected Value:
         2
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareValuesUsingNumericTolerancesExample.m (CompareValuesUsingNumericTolerancesExample) at 13

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

verifyEqual(testCase,1.5,2,"AbsTol",1)
Verification passed.

Протестируйте, если различие между фактическими и ожидаемыми значениями меньше 10%. Тестовые сбои.

verifyEqual(testCase,1.5,2, ...
    "Difference must be within relative tolerance.","RelTol",0.1)
Verification failed.
    ----------------
    Test Diagnostic:
    ----------------
    Difference must be within relative tolerance.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual 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
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareValuesUsingNumericTolerancesExample.m (CompareValuesUsingNumericTolerancesExample) at 23

Советы

  • verifyEqual удобный метод. Например, verifyEqual(testCase,actual,expected) функционально эквивалентно следующему коду.

    import matlab.unittest.constraints.IsEqualTo
    testCase.verifyThat(actual,IsEqualTo(expected))

    Точно так же verifyEqual(testCase,actual,expected,"AbsTol",abstol,"RelTol",reltol) функционально эквивалентно следующему коду.

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.AbsoluteTolerance
    import matlab.unittest.constraints.RelativeTolerance
    testCase.verifyThat(actual,IsEqualTo(expected, ...
        'Within',AbsoluteTolerance(abstol) | RelativeTolerance(reltol)))

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

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

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

    • Используйте проверки типа утверждения, когда условие отказа будет делать недействительным остаток от текущего содержания теста, но не предотвратит соответствующее выполнение последующих тестов. Отказ в точке утверждения представляет текущий тест как Failed и IncompleteДля получения дополнительной информации см. matlab.unittest.qualifications. Assertable.

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

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021b

Введенный в R2013a