exponenta event banner

verifyNotSameHandle

Класс: matlab.unittest.qualifications.Verifable
Пакет: matlab.unittest.qualifications

Проверка того, что значение не обрабатывается указанным экземпляром

Синтаксис

verifyNotSameHandle(verifiable,actual,notExpectedHandle)
verifyNotSameHandle(___,diagnostic)

Описание

verifyNotSameHandle(verifiable,actual,notExpectedHandle) проверяет, что actual имеет другой размер и/или не содержит тех же экземпляров, что и notExpectedHandle массив дескрипторов.

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

Входные аргументы

verifiable

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

actual

Тестируемое значение.

notExpectedHandle

Массив дескрипторов для сравнения.

diagnostic

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

  • строковый массив

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

  • дескриптор функции

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

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

Примеры

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

Создать TestCase объект для интерактивного тестирования.

testCase = matlab.unittest.TestCase.forInteractiveUse;

Создание класса дескрипторов, ExampleHandle.

classdef ExampleHandle < handle
end

Создайте две переменные дескриптора.

h1 = ExampleHandle;
h2 = ExampleHandle;

Дескрипторы указывают на различные объекты.

verifyNotSameHandle(testCase, h1, h2);
Interactive verification passed.

Показать соответствующие комбинации дескрипторов.

verifyNotSameHandle(testCase, [h1 h2 h1], [h1 h2 h1]);
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
verifyNotSameHandle failed.
--> The two handles must not refer to the same handle, or should have 
different sizes.

Actual Value:
      1x3 ExampleHandle array with no properties.
Handle Object:
      1x3 ExampleHandle array with no properties.

Не удалось выполнить тест.

Порядок аргументов дескриптора имеет значение.

verifyNotSameHandle(testCase, [h1 h2], [h2 h1]);
Interactive verification passed.

Протестируйте ручку с собой.

verifyNotSameHandle(testCase, h1, h1);
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
verifyNotSameHandle failed.
--> The two handles must not refer to the same handle, or should have 
different sizes.

Actual Value:
      ExampleHandle with no properties.
Handle Object:
      ExampleHandle with no properties.

Не удалось выполнить тест.

Переменные разных размеров.

verifyNotSameHandle(testCase, h2, [h2 h2]);
Interactive verification passed.

Переменные одного размера.

verifyNotSameHandle(testCase, [h1 h1], [h1 h1]);
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
verifyNotSameHandle failed.
--> The two handles must not refer to the same handle, or should have 
different sizes.

Actual Value:
      1x2 ExampleHandle array with no properties.
Handle Object:
      1x2 ExampleHandle array with no properties.

Не удалось выполнить тест.

Совет

  • Этот метод функционально эквивалентен:

    import matlab.unittest.constraints.IsSameHandleAs;
    verifiable.verifyThat(actual, ~IsSameHandleAs(notExpectedHandle));

    Существует больше функциональных возможностей при использовании IsSameHandleAs ограничение непосредственно через verifyThat.

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

    • Для проверки соответствия среды тестирования предварительным условиям, которые в противном случае не приведут к сбою теста, используйте квалификационные требования. Предполагаемые отказы приводят к отфильтрованным тестам, и платформа тестирования помечает тесты как Incomplete. Дополнительные сведения см. в разделе matlab.unittest.qualifications.Assumable.

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

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

Представлен в R2013a