exponenta event banner

matlab.unittest.qualifications. Класс Assumable

Пакет: matlab.unittest.qualifications

Квалификация для фильтрации содержимого теста

Описание

Assumable класс предоставляет квалификацию для фильтрации содержимого теста. Помимо действий, выполняемых в случае отказов, Assumable класс работает так же, как и другие matlab.unittest квалификация.

При сбое предположения Assumable класс информирует структуру тестирования о сбое, бросив AssumptionFailedException. Затем тестовый фреймворк помечает содержимое теста как отфильтрованное и продолжает тестирование. Часто допущения используются для обеспечения выполнения теста только при выполнении определенных предварительных условий. Однако выполнение теста без выполнения предварительных условий не приводит к сбою теста. Убедитесь, что содержимое теста - Exception Safe. Если условие отказа должно привести к отказу испытания, используйте утверждения или проверки вместо допущений.

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

  • При определении TestCase с использованием Test , фреймворк помечает весь метод как отфильтрованный и запускает последующие методы тестирования.

  • При определении TestCase с использованием TestMethodSetup или TestMethodTeardown , тестовый фреймворк помечает метод для этого экземпляра как отфильтрованный.

  • При определении TestCase с использованием TestClassSetup или TestClassTeardown атрибуты, тестовый фреймворк фильтрует весь TestCase класс.

Фильтрация содержимого теста с использованием допущений не приводит к сбоям теста. Следовательно, в результате может получиться мертвый тестовый код. Избегайте этого, отслеживая отфильтрованные тесты.

Методы

assumeClassПредположим точный класс указанного значения
assumeEmptyПредположим, что значение пустое
assumeEqualПредположим, что значение равно указанному значению
assumeErrorПредположим, что функция выдает указанное исключение
assumeFailСоздать безусловный отказ допущения
assumeFalseПредположим, что значение равно false
assumeGreaterThanПредположим, что значение больше указанного значения
assumeGreaterThanOrEqualПредположим, что значение больше или равно указанному значению
assumeInstanceOfПредположим, что значение является объектом указанного типа
assumeLengthПредположим, что значение имеет заданную длину
assumeLessThanПредположим, что значение меньше указанного значения
assumeLessThanOrEqualПредположим, что значение меньше или равно указанному значению
assumeMatchesПредположим, строка соответствует указанному регулярному выражению
assumeNotEmptyПредположим, что значение не пусто
assumeNotEqualПредположим, что значение не равно указанному значению
assumeNotSameHandleПредположим, что значение не является дескриптором указанного экземпляра
assumeNumElementsПредположим, что значение имеет указанное число элементов
assumeReturnsTrueПри вычислении функция возвращает значение true
assumeSameHandleПредположим, что два значения являются дескрипторами для одного экземпляра
assumeSizeПредположим, что значение имеет указанный размер
assumeSubstringПредположим, что строка содержит указанную строку
assumeThatПредположим, что значение соответствует указанному ограничению
assumeTrueПредположим, что значение равно true
assumeWarningПринять предупреждения о проблемах с функциями
assumeWarningFreeПредположим, что функция не выдает предупреждений

События

AssumptionFailed

Срабатывает при неудачном предположении. A QualificationEventData передается функциям обратного вызова прослушивателя.

AssumptionPassed

Срабатывает при прохождении предположения. A QualificationEventData передается функциям обратного вызова прослушивателя.

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

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

Примеры

свернуть все

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

Создать IsSupportedTest тестовый случай. См. следующее: IsSupportedTest тестовый случай на последующих шагах в этом примере, которые выделяют определенные функции в файле.

 Файл определения класса IsSupportedTest

Для выполнения команд MATLAB ® в этом примере добавьте IsSupportedTest.m в папку на вашем пути MATLAB.

Запись теста для проверки платформы. Все тесты в этом тестовом случае должны выполняться только на платформах UNIX ®. TestPlatform функция использует assumeFalse метод проверки, выполняется ли MATLAB на платформе Windows ®. В этом случае тест завершается неуспешно.

function TestPlatform(testcase)
    testcase.assumeFalse(ispc,...
        'Do not run any of these tests on Windows.')
end

Сделать TestPlatform a TestClassSetup Испытание, чтобы сделать TestPlatform проверить предварительное условие, добавить его внутрь methods (TestClassSetup) блок.

Запустите тестовый случай. Создайте объект тестового примера и запустите тесты на платформе Windows.

tc = IsSupportedTest;
res = tc.run;
Running IsSupportedTest

================================================================================
All tests in IsSupportedTest were filtered.
    Test Diagnostic: Do not run any of these tests on Windows.
    Details
================================================================================

Done IsSupportedTest
__________

Failure Summary:

     Name                   Failed  Incomplete  Reason(s)
    ====================================================================
     IsSupportedTest/test1              X       Filtered by assumption.

Тесты были отфильтрованы и не были запущены ( помеченыIncomplete).

Для получения дополнительных сведений щелкните ссылку Подробно.

================================================================================
An assumption was not met while setting up or tearing down IsSupportedTest.
As a result, all IsSupportedTest tests were filtered.

    ----------------
    Test Diagnostic:
    ----------------
    Do not run any of these tests on Windows.

    ---------------------
    Framework Diagnostic:
    ---------------------
    assumeFalse failed.
    --> The value must evaluate to "false".
    
    Actual Value:
             1

    ------------------
    Stack Information:
    ------------------
    In C:\work\IsSupportedTest.m (IsSupportedTest.TestPlatform) at 4
================================================================================

Ссылка на IsSupportedTest.TestPlatform под Stack Information переход к отказавшему assumeFalse способ.

Подробнее

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

Представлен в R2013a