assertNotSet

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

Утверждать, что свойство не задано

Описание

пример

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

пример

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

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

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

Образец теста, заданный как 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.assertNotSet(behavior.PropertyBar);
Assertion passed.

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

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

Заявите, что PropertyFoo не был установлен. Отобразите диагностическую информацию после отказа.

testCase.assertNotSet(behavior.PropertyFoo, ...
    'PropertyFoo should not have been set.');
Assertion failed.
    ----------------
    Test Diagnostic:
    ----------------
    PropertyFoo should not have been set.
    ---------------------
    Framework Diagnostic:
    ---------------------
    assertNotSet 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>
Assertion failed.

Совет

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

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

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

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

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

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

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

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

Введенный в R2017a