exponenta event banner

matlab.unittest.constraints.ResisponNoWarnings класс

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.Constraint

Функция, задающая ограничение, которая не выдает предупреждений

Строительство

outConstObj = IssuesNoWarnings создает зависимость, outConstObj, указывая функцию, которая не выдает предупреждений, когда платформа тестирования вызывает ее. Ограничение выполняется, если при вызове функции платформой тестирования не выдаются предупреждения.

outConstObj = IssuesNoWarnings('WhenNargoutIs', numOutputs) создает ограничение, которое может определить, является ли фактическое значение дескриптором функции, который не выдает предупреждений, когда платформа тестирования вызывает его с определенным количеством выходных аргументов, numOutputs.

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

numOutputs

Число выходов запросов ограничения при вызове дескриптора функции, заданного как неотрицательное, действительное скалярное целое число.

По умолчанию: 0

Свойства

FunctionOutputs

Выходные аргументы, создаваемые при вызове предоставленного дескриптора функции, заданного как массив ячеек. Это свойство предоставляет доступ к выходным аргументам. Он доступен только для чтения, и платформа тестирования устанавливает его при вызове дескриптора функции. Количество выходов определяется Nargout собственность.

Nargout

Число выходных аргументов, используемых экземпляром при выполнении функций. Задать это свойство через конструктор через numOutputs входной аргумент.

Копирование семантики

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IssuesNoWarnings

testCase = TestCase.forInteractiveUse;

Убедитесь, что вызов true не приводит к появлению каких-либо предупреждений.

testCase.verifyThat(@true, IssuesNoWarnings)
Interactive verification passed.

Убедитесь, что вызов size при пустом массиве предупреждение не выводится. Проверьте выходные аргументы.

issuesNoWarningsConstraint = IssuesNoWarnings('WhenNargoutIs', 2);
testCase.verifyThat(@() size([]), issuesNoWarningsConstraint)
[actualOut1, actualOut2] = issuesNoWarningsConstraint.FunctionOutputs{:};
Interactive verification passed.

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

testCase.verifyThat(5, IssuesNoWarnings)
Interactive verification failed.

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

Actual Value:
         5

Убедитесь, что ограничение не выполнено, если фактическое значение приводит к предупреждению.

testCase.verifyThat(@() warning('some:id', 'Message'), IssuesNoWarnings)
Warning: Message 
> In @()warning('some:id','Message')
  In matlab.unittest.internal.constraints.FunctionHandleConstraint/invoke (line 36)
  In matlab.unittest.internal.constraints.WarningQualificationConstraint/invoke (line 39)
  In matlab.unittest.constraints.IssuesNoWarnings/issuesNoWarnings (line 140)
  In matlab.unittest.constraints.IssuesNoWarnings/satisfiedBy (line 90)
  In matlab.unittest.internal.qualifications.QualificationDelegate/qualifyThat (line 62)
  In matlab.unittest.qualifications.Verifiable/verifyThat (line 228) 
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IssuesNoWarnings failed.
--> The function issued warnings.
    
    Warnings Issued:
        --> 'some:id'
                Message

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