exponenta event banner

matlab.unittest.plugins. Класс QualifyingPlugin

Пакет: matlab.unittest.plugins
Суперклассы: matlab.unittest.plugins.TestRunnerPlugin

Интерфейс для подключаемых модулей, выполняющих общесистемную квалификацию

Описание

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

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

  • setupTestClass

  • teardownTestClass

  • setupTestMethod

  • teardownTestMethod

В следующих унаследованных методах можно выполнять только предположения, утверждения и фатальные утверждения:

  • setupSharedTestFixture

  • teardownSharedTestFixture

Методы

assertUsingУбедитесь, что значение удовлетворяет заданному ограничению
assumeUsingПредположим, что значение удовлетворяет заданному ограничению
fatalAssertUsingФатально утверждать, что значение удовлетворяет заданному ограничению
verifyUsingУбедитесь, что значение удовлетворяет заданному ограничению

Унаследованные методы

createSharedTestFixtureРасширение создания общих экземпляров испытательного прибора
createTestClassInstanceРасширение создания уровня класса TestCase случаи
createTestMethodInstanceРасширение создания уровня метода TestCase случаи
reportFinalizedResultПредоставление отчетов о окончательных результатах тестирования
reportFinalizedSuiteРасширение отчетности о завершенных TestSuite множество
runSessionРасширение сеанса тестирования
runTestРасширение работы одиночного Test элемент
runTestClassРасширение режима работы Test элементы из одного класса или функции
runTestMethodРасширение режима одиночного испытания
runTestSuiteРасширение режима работы TestSuite множество
setupSharedTestFixtureРасширение настройки общего испытательного прибора
setupTestClassРасширить настройку класса тестирования
setupTestMethodРасширение способа настройки теста
teardownSharedTestFixtureУдлинение разрывного общего испытательного приспособления
teardownTestClassРасширить класс испытания на разрыв
teardownTestMethodУдлинить метод испытания на разрыв

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

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

Примеры

свернуть все

Создайте подключаемый модуль, чтобы обеспечить неизменность пути к тестовым файлам MATLAB ®. Если путь после запуска тестового файла отличается от начального пути, тест завершается неуспешно.

Создание класса, VerifyNoPathChangePlugin, которая наследует от matlab.unittest.plugins.QualifyingPlugin класс.

classdef VerifyNoPathChangePlugin < matlab.unittest.plugins.QualifyingPlugin
    properties (Access=private)
        OriginalPath
    end
    
    methods (Access=protected)
        function setupTestClass(plugin, pluginData)
            plugin.OriginalPath = path;
            setupTestClass@matlab.unittest.plugins.QualifyingPlugin(plugin,pluginData);
        end
        function teardownTestClass(plugin, pluginData)
            import matlab.unittest.constraints.IsEqualTo;
            teardownTestClass@matlab.unittest.plugins.QualifyingPlugin(plugin,pluginData);
            plugin.verifyUsing(pluginData.QualificationContext, ...
                path, IsEqualTo(plugin.OriginalPath), ...
                sprintf('%s modified the path.', pluginData.Name));
        end
    end
end

Создайте следующий класс тестирования. Тест изменяет путь, но не восстанавливает исходный путь.

classdef LeavesModifiedPath < matlab.unittest.TestCase
    methods (Test)
        function test1(~)
            addpath(pwd);
        end
    end
end

В данном примере в командной строке удалите текущую рабочую папку из пути.

rmpath(pwd)

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

suite = matlab.unittest.TestSuite.fromClass(?LeavesModifiedPath);
runner = matlab.unittest.TestRunner.withTextOutput;
runner.addPlugin(VerifyNoPathChangePlugin);
runner.run(suite);
Running LeavesModifiedPath
.
================================================================================
Verification failed while setting up or tearing down LeavesModifiedPath.
As a result, all LeavesModifiedPath tests failed.

    ----------------
    Test Diagnostic:
    ----------------
    LeavesModifiedPath modified the path.

    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> StringComparator failed.
        --> The character arrays are not equal.
    
    Actual char:
        C:\work;C:\Program Files\MATLAB\R2015b\toolbox\matlab\...
   Expected char:
        C:\Program Files\MATLAB\R2015b\toolbox\matlab\...

    ------------------
    Stack Information:
    ------------------
    In C:\work\VerifyNoPathChangePlugin.m (VerifyNoPathChangePlugin.teardownTestClass) at 14
================================================================================

Done LeavesModifiedPath
__________

Failure Summary:

     Name                      Failed  Incomplete  Reason(s)
    =======================================================================
     LeavesModifiedPath/test1    X                 Failed by verification.
Представлен в R2015b