matlab.unittest.qualifications.Assumable class

Пакет: matlab.unittest.qualifications

Проверка, чтобы отфильтровать содержание теста

Описание

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

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

Когда отказ предположения производится в рамках метода TestCase класс, тип метода определяет, какие тесты отфильтрованы:

  • Test метод — маркеры инфраструктуры целый Test метод, как отфильтровано.

  • TestMethodSetup или TestMethodTeardown метод — маркеры инфраструктуры Test метод, чтобы запуститься для того экземпляра метода, как отфильтровано.

  • TestClassSetup или TestClassTeardown метод — маркеры инфраструктуры целый тестовый класс, как отфильтровано.

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

matlab.unittest.qualifications.Assumable классом является handle класс.

Методы

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

События

EventNameТриггерДанные о событияхАтрибуты события
AssumptionFailedИнициированный на провальное предположение. QualificationEventData объект передается функциям обратного вызова прослушивателя.matlab.unittest.qualifications.QualificationEventData

NotifyAccess: private

ListenAccess: public

AssumptionPassedИнициированный на передающее предположение. QualificationEventData объект передается функциям обратного вызова прослушивателя.matlab.unittest.qualifications.QualificationEventData

NotifyAccess: private

ListenAccess: public

Примеры

свернуть все

Используйте предположение, чтобы гарантировать, что ваши тесты могут запуститься только на платформе Linux®. Дайте среде тестирования команду фильтровать тесты, если MATLAB установлен на Microsoft® Windows® или macOS платформе.

В файле в вашей текущей папке создайте LinuxTests класс. Чтобы протестировать на платформу, задайте testPlatform метод в TestClassSetup methods блок. Метод использует вызов assumeTrue метод, чтобы протестировать тот MATLAB установлен на платформе Linux. Если предположение перестало работать, среда фильтрует целый тестовый класс.

classdef LinuxTests < matlab.unittest.TestCase
    methods (TestClassSetup)
        function testPlatform(testCase)
            testCase.assumeTrue(isunix && ~ismac, ...
                "Tests must run on a Linux platform.")
        end
    end
end

Задайте свои тесты в methods блокируйтесь с Test атрибут. Тесты в этом примере в целях рисунка только.

classdef LinuxTests < matlab.unittest.TestCase
    methods (TestClassSetup)
        function testPlatform(testCase)
            testCase.assumeTrue(isunix && ~ismac, ...
                "Tests must run on a Linux platform.")
        end
    end

    methods (Test)
        function test1(testCase)
            testCase.verifyWarningFree(@rand)
        end
        function test2(testCase)
            testCase.verifyWarningFree(@() size([]))
        end
    end
end

Запустите тесты на машине Windows. Поскольку сбои предположения на уровне настройки класса, среда фильтрует тесты, заданные LinuxTests класс.

runtests("LinuxTests")
Running LinuxTests

================================================================================
All tests in LinuxTests were filtered.
    Test Diagnostic: Tests must run on a Linux platform.
Details
================================================================================

Done LinuxTests
__________

Failure Summary:

     Name              Failed  Incomplete  Reason(s)
    ===============================================================
     LinuxTests/test1              X       Filtered by assumption.
    ---------------------------------------------------------------
     LinuxTests/test2              X       Filtered by assumption.
ans = 
  1×2 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   0 Passed, 0 Failed, 2 Incomplete.
   0.27782 seconds testing time.

Больше о

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

Введенный в R2013a