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 входной параметр.

Примеры

свернуть все

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

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