verifyFail

Класс: matlab.unittest.qualifications. Проверяемый
Пакет: matlab.unittest.qualifications

Создайте безусловный отказ верификации

Синтаксис

verifyFail(verifiable)
verifyFail(verifiable,diagnostic)

Описание

verifyFail(verifiable) создает безусловный отказ верификации при обнаружении.

verifyFail(verifiable,diagnostic) также связывает диагностическую информацию в diagnostic с проверкой. В зависимости от конфигурации исполнителя тестов строение тестирования может отображать диагностику, когда проверка проходит или не проходит. По умолчанию среда отображает диагностику только в случае сбоя проверки. Поведение по умолчанию можно переопределить путем настройки исполнителя тестов. Для примера используйте DiagnosticsOutputPlugin образец для отображения как сбойной, так и проходящей диагностики событий.

Входные параметры

verifiable

The matlab.unittest.TestCase образец, который используется для прохождения или непрохождения верификации в сочетании с тестовой средой.

diagnostic

Диагностическая информация, относящаяся к проверке, указывается как одно из следующего:

  • Строковые массивы

  • Символьный массив

  • указатель на функцию

  • matlab.unittest.diagnostics.Diagnostic объект

Значения диагностики могут быть нескалярными. Для получения дополнительной информации смотрите matlab.unittest.diagnostics.Diagnostic.

Примеры

расширить все

Пример, где этот метод может использоваться, находится в функции обратного вызова, которая не должна выполняться в данном сценарии. Тест может подтвердить, что это не происходит, безоговорочно выполнив отказ, если достигнут путь кода.

Создайте класс Handle, MyHandle, с SomethingHappened событие.

classdef MyHandle < handle
    events
        SomethingHappened
    end
end

Создайте файл, ListenerTest, на вашем MATLAB® путь, который содержит следующие TestCase класс.

classdef ListenerTest < matlab.unittest.TestCase
    methods(Test)
        function testDisabledListeners(testCase)
            h = MyHandle;
            
            % Add a listener to a test helper method
            listener = h.addlistener('SomethingHappened', ...
                @testCase.shouldNotGetCalled);
            
            % Passing scenario (code path is not reached)
            %%%%%%%%%%%%%%%%%%%%
            % Disabled listener should not invoke callbacks
            listener.Enabled = false;
            h.notify('SomethingHappened');
            
            % Failing scenario (code path is reached)
            %%%%%%%%%%%%%%%%%%%%
            % Enabled listener invoke callback and fail
            listener.Enabled = true;
            h.notify('SomethingHappened');
        end
    end
    
    methods
        function shouldNotGetCalled(testCase, ~, ~)
            % A test helper callback method that should not execute
            testCase.verifyFail('This listener callback should not have executed');
        end
    end
    
end

В командной строке запустите тест.

run(ListenerTest);
Running ListenerTest

================================================================================
Verification failed in ListenerTest/testDisabledListeners.

    ----------------
    Test Diagnostic:
    ----------------
    This listener callback should not have executed

    ------------------
    Stack Information:
    ------------------
    In C:\Desktop\ListenerTest.m (ListenerTest.shouldNotGetCalled) at 27
    In C:\\Desktop\ListenerTest.m (@(varargin)testCase.shouldNotGetCalled(varargin{:})) at 8
    In C:\Desktop\ListenerTest.m (ListenerTest.testDisabledListeners) at 20
================================================================================
.
Done ListenerTest
__________

Failure Summary:

     Name                                Failed  Incomplete  Reason(s)
    =================================================================================
     ListenerTest/testDisabledListeners    X                 Failed by verification.

Совет

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

    • Используйте проверки типа «assumption», чтобы убедиться, что тестовая среда соответствует предусловиям, которые не приводят к непройденному тесту. Нарушение условий приводит к отфильтрованным тестам, а среда тестирования помечает тесты как Incomplete. Для получения дополнительной информации смотрите matlab.unittest.qualifications.Assumable.

    • Используйте проверки типа утверждения, когда условие отказа делает недействительным оставшуюся часть текущего содержания теста, но не препятствует правильному выполнению последующих методов тестирования. При отказе в точке задания текущий метод тестирования становится неудачным и неполным. Для получения дополнительной информации смотрите matlab.unittest.qualifications.Assertable.

    • Используйте критическое утверждение проверок, чтобы прервать тестовый сеанс после отказа. Эти типы проверки применяются, когда тип отказа настолько принципиален, что нет точки продолжать тестирование. Эти виды проверки также применяются фиксатором когда отключение не восстанавливает состояние MATLAB правильно, и лучше прекратить тестирование и начать новую сессию. Для получения дополнительной информации смотрите matlab.unittest.qualifications.FatalAssertable.

Введенный в R2013a