Main Content

matlab.unittest.constraints.IssuesNoWarnings 类

命名空间: matlab.unittest.constraints
超类: matlab.unittest.constraints.Constraint

测试函数是否不发出警告

描述

matlab.unittest.constraints.IssuesNoWarnings 类提供一个约束来测试函数句柄是否不发出警告。

matlab.unittest.constraints.IssuesNoWarnings 类是一个 handle 类。

创建对象

描述

示例

c = matlab.unittest.constraints.IssuesNoWarnings 创建一个约束来测试函数句柄是否不发出警告。如果实际值是函数句柄,且当测试框架调用它时不发出警告,则满足约束。

示例

c = matlab.unittest.constraints.IssuesNoWarnings("WhenNargoutIs",numOutputs) 还指定从函数句柄请求的输出的数目。使用此语法时,如果函数句柄产生了指定数量的输出而不发出任何警告,则满足约束。

输入参量

全部展开

调用函数句柄时约束请求的输出的数目,指定为非负整数标量。

此参量设置 Nargout 属性。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

属性

全部展开

当测试框架调用函数句柄时函数句柄产生的输出,以元胞数组形式返回。元胞数组元素的数量与 numOutputs 相同。

属性:

GetAccess
public
SetAccess
private

调用函数句柄时约束请求的输出的数目,以非负整数标量形式返回。

此属性由 numOutputs 输入参量设置。

属性:

GetAccess
public
SetAccess
private

示例

全部折叠

测试 actual 值是否为不发出警告的函数句柄。

首先,导入此示例中使用的类。

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

创建一个供交互测试的测试用例。

testCase = TestCase.forInteractiveUse;

验证对 true 函数的调用不会产生任何警告。

testCase.verifyThat(@true,IssuesNoWarnings)
Verification passed.

验证当向 size 函数传递空数组时,从该函数请求两个输出不会导致任何警告。

constraint = IssuesNoWarnings("WhenNargoutIs",2);
testCase.verifyThat(@() size([]),constraint)
Verification passed.

检查在之前的测试中由函数句柄产生的输出。

[out1,out2] = constraint.FunctionOutputs{:}
out1 =

     0


out2 =

     0

验证如果实际值不是函数句柄,则不满足 IssuesNoWarnings 约束。

testCase.verifyThat(5,IssuesNoWarnings)
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:warning:id","Warning!"), ...
    IssuesNoWarnings)
Warning: Warning! 
> In @()warning("SOME:warning:id","Warning!")
In matlab.unittest.internal.constraints/FunctionHandleConstraint/invoke (line 35)
In matlab.unittest.internal.constraints/WarningQualificationConstraint/invoke (line 43)
In matlab.unittest.constraints/IssuesNoWarnings/issuesNoWarnings (line 141)
In matlab.unittest.constraints/IssuesNoWarnings/satisfiedBy (line 84) 
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IssuesNoWarnings failed.
    --> The function issued warnings.
        
        Warnings Issued:
            --> Identifier: "SOME:warning:id"
                   Message: Warning!
    
    Evaluated Function:
      function_handle with value:
    
        @()warning("SOME:warning:id","Warning!")

版本历史记录

在 R2013a 中推出