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Позвольте сообщить завершенного TestResults
runTestРасширенная работа единственного элемента тестового набора
runTestClassРасширьте выполнение массива TestSuite от того же класса или функции
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