matlab.unittest.qualifications.Assertable class

Пакет: matlab.unittest.qualifications

Проверка, чтобы подтвердить предусловия теста

Описание

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

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

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

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

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

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

Утверждения позволяют остающимся тестам получить покрытие, когда предусловия нарушены в тесте, но состояние является восстанавливаемым. Они предотвращают ненужные отказы, не выполняя более поздние верификации, которые перестали работать из-за делаемых недействительным предусловий. Если отказ не влияет на предусловия теста или вызывает проблемы с настройкой фиксатора или отключением, используйте верификации, которые гарантируют, что полное содержание теста запускается.

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

Методы

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

События

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

NotifyAccess: private

ListenAccess: public

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

NotifyAccess: private

ListenAccess: public

Примеры

свернуть все

Протестировать умножение DocPolynom объекты, сначала добавьте examples папка к пути поиска файлов и подтверждает это DocPolynom класс доступен для ваших тестов. Для получения дополнительной информации о DocPolynom класс, смотрите Полиномы Представления с Классами.

В файле в вашей текущей папке создайте DocPolynomMultiplicationTest класс, который тестирует умножение DocPolynom объекты. Получить доступ к DocPolynom в ваших тестах задайте addDocPolynomClassToPath метод в TestClassSetup methods блок. Используйте PathFixture экземпляр в рамках метода, чтобы добавить examples папка, включая DocPolynom файл определения класса, к пути. Затем используйте утверждение, чтобы подтвердить это, фиксатор сделал DocPolynom доступный для ваших тестов. Если утверждение перестало работать, среда приводит к сбою Test методы, не пытаясь запустить их. В противном случае среда запускает Test методы. Наконец, среда разъединяет фиксатор и восстанавливает путь к его предыдущему состоянию.

classdef DocPolynomMultiplicationTest < matlab.unittest.TestCase
    properties
        TextToDisplay = "Equation under test: "
    end

    methods (TestClassSetup)
        function addDocPolynomClassToPath(testCase)
            import matlab.unittest.fixtures.PathFixture
            folder = fullfile(matlabroot, ...
                "help","techdoc","matlab_oop","examples");
            testCase.applyFixture(PathFixture(folder))
            testCase.assertNotEmpty(?DocPolynom)
        end
    end
end

Теперь добавьте свои тесты в methods блокируйтесь с Test атрибут.

classdef DocPolynomMultiplicationTest < matlab.unittest.TestCase
    properties
        TextToDisplay = "Equation under test: "
    end

    methods (TestClassSetup)
        function addDocPolynomClassToPath(testCase)
            import matlab.unittest.fixtures.PathFixture
            folder = fullfile(matlabroot, ...
                "help","techdoc","matlab_oop","examples");
            testCase.applyFixture(PathFixture(folder))
            testCase.assertNotEmpty(?DocPolynom)
        end
    end

    methods (Test)
        function test1(testCase)
            p1 = DocPolynom([1 0 3]);
            p2 = DocPolynom([5 2]);
            actual = p1 * p2;
            expected = DocPolynom([5 2 15 6]);
            diagnostic = [testCase.TextToDisplay ...
                "(x^2 + 3) * (5*x + 2) = 5*x^3 + 2*x^2 + 15*x + 6"];
            testCase.verifyEqual(actual,expected,diagnostic)
        end

        function test2(testCase)
            p1 = DocPolynom([1 4]);
            p2 = DocPolynom([2 3]);
            p3 = DocPolynom([1 0 -1]);
            actual = p1 * p2 * p3;
            expected = DocPolynom([2 11 10 -11 -12]);
            diagnostic = [testCase.TextToDisplay ...
                "(x + 4) * (2*x + 3) * (x^2 - 1) = 2*x^4 + 11*x^3 + 10*x^2 - 11*x - 12"];
            testCase.verifyEqual(actual,expected,diagnostic)
        end
    end
end

Запустите тесты в DocPolynomMultiplicationTest класс. В этом примере, обеих из тестовой передачи.

runtests("DocPolynomMultiplicationTest")
Running DocPolynomMultiplicationTest
..
Done DocPolynomMultiplicationTest
__________
ans = 
  1×2 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

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

Больше о

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

Введенный в R2013a