matlab.unittest.qualifications.Verifiable class

Пакет: matlab.unittest.qualifications

Проверка, чтобы произвести условия мягкого отказа

Описание

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

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

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

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

Методы

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

События

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

NotifyAccess: private

ListenAccess: public

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

NotifyAccess: private

ListenAccess: public

Примеры

свернуть все

Используйте верификации, чтобы протестировать DocPolynom класс, который представляет полиномы в MATLAB®. Для получения дополнительной информации о классе, смотрите Полиномы Представления с Классами.

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

classdef DocPolynomTest < 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))
        end
    end
end

Теперь добавьте свои тесты в methods блокируйтесь с Test атрибут. Протестировать DocPolynom класс, используйте верификации в трех Test методы:

  • testConstructor метод — Использование verifyClass протестировать DocPolynom конструктор класса.

  • testAddition метод — Использование verifyEqual протестировать сложение DocPolynom объекты.

  • testMultiplication метод — Использование verifyEqual протестировать умножение DocPolynom объекты.

classdef DocPolynomTest < 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))
        end
    end

    methods (Test)
        function testConstructor(testCase)
            p = DocPolynom([1 0 1]);
            testCase.verifyClass(p,?DocPolynom)
        end

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

        function testMultiplication(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
    end
end

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

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

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   3 Passed, 0 Failed, 0 Incomplete.
   0.16695 seconds testing time.

Введенный в R2013a