fatalAssertCalled

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

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

Описание

пример

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

пример

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.

Совет

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

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

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

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

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

Использование 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
Для просмотра документации необходимо авторизоваться на сайте