matlab.unittest.plugins.QualifyingPlugin class

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

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

Описание

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

The 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Удлините метод испытания на разрыв

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

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

Создайте плагин, чтобы убедиться, что тестовые файлы покидают 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