fatalAssertCalled

Класс: matlab.mock.TestCase
Пакет: matlab.mock

Фатально утверждайте, что метод был вызван определенными входными значениями

Описание

пример

fatalAssertCalled(testcase,behavior) фатально утверждает, что метод был вызван определенными входными значениями.

пример

fatalAssertCalled(testcase,behavior,diagnostic) также сопоставляет диагностическую информацию в diagnostic с проверкой. В зависимости от настройки исполнителя тестов среда тестирования может отобразить диагностику когда передачи проверки или сбои. По умолчанию среда отображает диагностику только, когда проверка перестала работать. Можно заменить поведение по умолчанию путем настройки исполнителя тестов. Например, используйте DiagnosticsOutputPlugin экземпляр, чтобы отобразить и провальную и передающую диагностику события.

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

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

Экземпляр теста в виде matlab.mock.TestCase объект.

Поведение макета в виде matlab.mock.MethodCallBehavior экземпляр. Создать экземпляр matlab.mock.MethodCallBehavior, вызовите метод объекта поведения.

Пример: withExactInputs(myMockBehavior.myMockedMethod)

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

Пример: "My diagnostic message."

Пример: @ () datetime ('now')

Примеры

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

Создайте макет с неявным интерфейсом для интерактивного использования. Интерфейс включает foo и bar методы. Вызовите foo путем определения входа.

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock('AddedMethods',["foo","bar"]);
mock.foo(123);

Фатально утверждайте тот foo был вызван входом 123.

testCase.fatalAssertCalled(behavior.foo(123));
Fatal assertion passed.

Создайте макет с неявным интерфейсом для интерактивного использования. Интерфейс включает foo и bar методы. Вызовите foo путем определения входа.

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock('AddedMethods',["foo","bar"]);
mock.foo(123);

Фатально утверждайте тот foo был вызван входом 456. Отобразите диагностическую информацию относительно отказа.

testCase.fatalAssertCalled(behavior.foo(456), ...
    'Method foo should have been called with input 456.');
Fatal assertion failed.
    ----------------
    Test Diagnostic:
    ----------------
    Method foo should have been called with input 456.
    ---------------------
    Framework Diagnostic:
    ---------------------
    fatalAssertCalled failed.
    --> Method 'foo' was not called with the specified signature.
    --> All observed method call(s) with any signature are:
            foo([1×1 matlab.mock.classes.Mock], 123)
    
    Specified method call:
    MethodCallBehavior
        [...] = foo(<Mock>, 456)
Fatal assertion failed.

Фатально утверждайте тот bar был назван, по крайней мере, однажды только с объектом как вход.

testCase.fatalAssertCalled(withExactInputs(behavior.bar), ...
    'Method bar should have been called.');
Fatal assertion failed.
    ----------------
    Test Diagnostic:
    ----------------
    Method bar should have been called.
    ---------------------
    Framework Diagnostic:
    ---------------------
    fatalAssertCalled failed.
    --> Method 'bar' was never called.
    
    Specified method call:
    MethodCallBehavior
        [...] = bar(<Mock>)
Fatal assertion failed.

Советы

Используйте проверку типа "fatal assertion", чтобы прервать сеанс тестирования после сбоя. Эти типы проверки применяются, когда характер отказа настолько принципиален, что нет смысла продолжать тестирование. Эти проверки также полезны, когда отключение фиксатора не восстанавливает MATLAB® правильно укажите и желательно прерывать тестирование и запускать новую сессию.

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

  • Используйте проверку типа "assumption", чтобы убедиться, что тестовая среда соответствует предварительным обязательным условиям, которые не приводят к ошибке тестирования. Нарушение условий приводит к фильтрации тестов, а среда тестирования помечает тесты как незавершенные.

  • Используйте проверку типа "assertion", когда состояние отказа делает недействительным оставшуюся часть текущего теста, но не препятствует правильному выполнению последующих видов тестирования. Отказ в точке утверждения отмечает текущий метод тестирования, как отказавший и неполный.

Альтернативы

Используя fatalAssertCalled метод функционально эквивалентен использованию matlab.mock.constraints.WasCalled ограничение с fatalAssertThat метод FatalAssertable класс. Например, следующие блоки кода функционально эквивалентны.

% Using the fatalAssertCalled method
testCase.fatalAssertCalled(behavior.foo(123), ...
    'Method foo should have been called with input 123.')

% Using the WasCalled constraint with fatalAssertThat method
import matlab.mock.constraints.WasCalled;
testCase.fatalAssertThat(behavior.foo(123),WasCalled, ...
    'Method foo should have been called with input 123.');
Однако существует больше функциональности, когда вы используете WasCalled ограничение. Например, можно указать, что метод был назван определенным числом времен.

Смотрите также

Введенный в R2017a
Для просмотра документации необходимо авторизоваться на сайте