fatalAssertNotSet

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

Фатально утверждайте, что свойство не было установлено

Описание

пример

fatalAssertNotSet(testcase,behavior) фатально утверждает, что свойство не было установлено.

пример

fatalAssertNotSet(testcase,behavior,diagnostic) также отображает диагностическую информацию в diagnostic после отказа.

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

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

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

Поведение макета в виде matlab.mock.PropertyBehavior экземпляр. Создать экземпляр matlab.mock.PropertyBehavior, получите доступ к свойству объекта поведения.

Пример: behavior.PropertyFoo

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

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

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

Примеры

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

Создайте макет с неявным интерфейсом для интерактивного использования. Интерфейс включает PropertyFoo и PropertyBar свойства. Присвойте значение PropertyFoo.

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock('AddedProperties', ...
    ["PropertyFoo","PropertyBar"]);
mock.PropertyFoo = 123;

Фатально утверждайте тот PropertyBar не был установлен.

testCase.fatalAssertNotSet(behavior.PropertyBar);
Fatal assertion passed.

Создайте макет с неявным интерфейсом для интерактивного использования. Интерфейс включает PropertyFoo и PropertyBar свойства. Присвойте значение PropertyFoo.

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock('AddedProperties', ...
    ["PropertyFoo","PropertyBar"]);
mock.PropertyFoo = 123;

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

testCase.fatalAssertNotSet(behavior.PropertyFoo, ...
    'PropertyFoo should not have been set.');
Fatal assertion failed.
    ----------------
    Test Diagnostic:
    ----------------
    PropertyFoo should not have been set.
    ---------------------
    Framework Diagnostic:
    ---------------------
    fatalAssertNotSet failed.
    --> Property 'PropertyFoo' was unexpectedly set to the specified value 1 time(s).
    --> All observed property set operation(s) where the property was set to any value are:
            <Mock>.PropertyFoo = 123
    
    Specified property set operation:
    PropertySetBehavior
        <Mock>.PropertyFoo = <IsAnything constraint>
Fatal assertion failed.

Советы

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

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

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

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

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

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

% Using the fatalAssertNotSet method
testCase.fatalAssertNotSet(behavior.PropertyBar);

% Using the WasSet constraint with fatalAssertThat method
import matlab.mock.constraints.WasSet;
testCase.fatalAssertThat(behavior.PropertyBar,~WasSet);
Однако существует больше функциональности, когда вы используете WasSet ограничение. Например, можно указать, что свойство не было определено определенный номер времен.

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

Введенный в R2017a