Main Content

matlab.unittest.constraints.EveryElementOf 类

命名空间: matlab.unittest.constraints

测试数组的每个元素是否满足约束

描述

matlab.unittest.constraints.EveryElementOf 类提供实际值的代理,因此您可以测试数组中的每个元素是否满足给定的约束。当您在测试中包含代理时,测试框架会逐元素对约束进行检查。

您可以在使用鉴定方法 assertThatassumeThatfatalAssertThatverifyThat 执行的测试中使用此类的实例。该类不修改提供的实际值。它仅充当执行约束分析的包装器。

创建对象

描述

示例

p = matlab.unittest.constraints.EveryElementOf(actualValue) 创建一个代理来测试指定数组的每个元素是否满足约束并设置 ActualValue 属性。当您使用此代理来测试约束时,如果 actualValue 的每个元素都满足此约束,则测试通过。

属性

全部展开

要根据约束进行测试的实际值,以任何数据类型的值的形式返回。在创建代理的过程中指定此属性的值。实际值的类必须支持数组索引并与约束兼容。

属性:

GetAccess
public
SetAccess
private

示例

全部折叠

使用 EveryElementOf 类测试数组的所有元素是否满足约束。

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.EveryElementOf
import matlab.unittest.constraints.ContainsSubstring
import matlab.unittest.constraints.HasNaN
import matlab.unittest.constraints.IsReal

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

testCase = TestCase.forInteractiveUse;

验证向量 ["Rain" "Main" "Plain"] 的每个元素都包含子字符串 "ain"

testCase.verifyThat(EveryElementOf(["Rain" "Main" "Plain"]), ...
    ContainsSubstring("ain"))
Verification passed.

测试向量 [NaN 0/0 5] 的每个元素是否为 NaN 值。测试失败,因为第三个元素不是 NaN 值。

testCase.verifyThat(EveryElementOf([NaN 0/0 5]),HasNaN)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    At least one element failed.
    
    Failing indices:
        3
    The first failing element failed because:
    --> HasNaN failed.
        --> The value must be NaN.
        
        Actual Value:
             5
    
    Actual Value Array:
       NaN   NaN     5

测试向量 [0 4i] 的每个元素是否都为复数。测试失败,因为第一个元素是实数值。

testCase.verifyThat(EveryElementOf([0 4i]),~IsReal)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    At least one element failed.
    
    Failing indices:
        1
    The first failing element failed because:
    --> Negated IsReal failed.
        --> The value must not be real.
        
        Actual Value:
             0
    
    Actual Value Array:
      0.000000000000000 + 0.000000000000000i  0.000000000000000 + 4.000000000000000i

提示

  • 您可以使用 EveryElementOf 检查数组的每个元素是否满足约束。然而,有一些约束,如 IsEqualToIsGreaterThanIsLessThan,它们本身会验证每个元素是否满足某个条件。在这些情况下,无需使用 EveryElementOf,使用它会影响鉴定性能。

版本历史记录

在 R2013a 中推出