exponenta event banner

verifyWarningFree

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

Проверка ошибок функции без предупреждений

Синтаксис

verifyWarningFree(verifiable,actual)
verifyWarningFree(___,diagnostic)
output1,...,outputN = verifyWarningFree(___)

Описание

verifyWarningFree(verifiable,actual) проверяет, что actual является дескриптором функции, который не выдает предупреждений.

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

output1,...,outputN = verifyWarningFree(___) также возвращает выходные аргументы output1,...,outputN которые создаются при вызове actual.

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

verifiable

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

actual

Функциональный дескриптор для тестирования.

diagnostic

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

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

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

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

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

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

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

output1,...,outputN

Выходные аргументы, от 1 до n (при наличии), из actual, возвращается как любой тип. Тип аргумента определяется параметром actual список аргументов.

Примеры

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

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

Протестируйте why функция.

verifyWarningFree(testCase, @why);
The bald and not excessively bald and not excessively smart hamster obeyed a terrified and not excessively terrified hamster.
Interactive verification passed.

Это случайное сообщение.

Протестируйте true функция.

verifyWarningFree(testCase, @true);
Interactive verification passed.

Протестируйте false функция.

actualOutputFromFalse = verifyWarningFree(testCase, @false);
Interactive verification passed.

Проверьте значение, которое не является дескриптором функции.

verifyWarningFree(testCase, 5,'diagnostic');
Interactive verification failed.

----------------
Test Diagnostic:
----------------
diagnostic

---------------------
Framework Diagnostic:
---------------------
verifyWarningFree failed.
--> The value must be an instance of the expected type.
    
    Actual Class:
        double
    Expected Type:
        function_handle

Actual Value:
         5

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

Протестируйте функцию, генерирующую предупреждение.

verifyWarningFree(testCase, @() warning('some:id', 'Message'));
Warning: Message 
> In @()warning('some:id','Message')
  In FunctionHandleConstraint>FunctionHandleConstraint.invoke at 43
  In WarningQualificationConstraint>WarningQualificationConstraint.invoke at 58
  In IssuesNoWarnings>IssuesNoWarnings.issuesNoWarnings at 131
  In IssuesNoWarnings>IssuesNoWarnings.satisfiedBy at 82
  In QualificationDelegate>QualificationDelegate.qualifyThat at 90
  In QualificationDelegate>QualificationDelegate.qualifyWarningFree at 204
  In Verifiable>Verifiable.verifyWarningFree at 757 
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
verifyWarningFree failed.
--> The function issued warnings.
    
    Warnings Issued:
        	some:id

Evaluated Function:
        @()warning('some:id','Message')

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

Совет

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

    import matlab.unittest.constraints.IssuesNoWarnings;
    verifiable.verifyThat(actual, IssuesNoWarnings());

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

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

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

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

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

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