matlab.unittest.constraints.IssuesNoWarnings class

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

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

Конструкция

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

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

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

numOutputs

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

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

Свойства

FunctionOutputs

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

Nargout

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

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

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

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

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')