Main Content

matlab.unittest.constraints.ReturnsTrue 类

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

测试函数是否返回 true

描述

matlab.unittest.constraints.ReturnsTrue 类提供一个约束来测试函数是否返回 true。

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

创建对象

描述

示例

c = matlab.unittest.constraints.ReturnsTrue 将创建一个约束来测试函数是否返回 true。返回标量逻辑值 1 (true) 的函数句柄满足该约束。

示例

全部折叠

使用 ReturnsTrue 约束测试函数。

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.ReturnsTrue

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

testCase = TestCase.forInteractiveUse;

测试 true 函数是否满足 ReturnsTrue 约束。测试通过。

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

测试 false 函数。测试失败。

testCase.verifyThat(@false,ReturnsTrue)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ReturnsTrue failed.
    --> The function handle did not evaluate to "true".
    --> Returned value:
              logical
            
               0
    
    Evaluated Function:
      function_handle with value:
    
        @false

测试在给定两个相等数值的情况下,对 isequal 的调用是否返回 true。测试通过。

testCase.verifyThat(@() isequal(1,single(1)),ReturnsTrue)
Verification passed.

验证两个不同字母不相同。

testCase.verifyThat(@() ~strcmp('a','b'),ReturnsTrue)
Verification passed.

测试一个返回 true 值向量的函数。测试失败,因为返回值是非标量。

testCase.verifyThat(@() strcmp('a',{'a','a'}),ReturnsTrue)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ReturnsTrue failed.
    --> The function handle did not return a scalar. The return value had a size of [1  2].
    --> Returned value:
              1×2 logical array
            
               1   1
    
    Evaluated Function:
      function_handle with value:
    
        @()strcmp('a',{'a','a'})

测试一个返回数值的函数。测试失败。

testCase.verifyThat(@ones,ReturnsTrue)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ReturnsTrue failed.
    --> The function handle did not return a logical value. The return value was of type "double".
    --> Returned value:
                 1
    
    Evaluated Function:
      function_handle with value:
    
        @ones

提示

  • ReturnsTrue 的替代约束是 IsTrue 约束。IsTrue 运行速度更快,更易于使用,但 ReturnsTrue 提供的诊断信息稍好。在此示例中,两个测试都失败,但第二个测试将函数句柄显示为诊断的一部分。

    import matlab.unittest.TestCase
    import matlab.unittest.constraints.IsTrue
    import matlab.unittest.constraints.ReturnsTrue
    
    testCase = TestCase.forInteractiveUse;
    actual = 1;
    expected = 2;
    testCase.verifyThat(isequal(actual,expected),IsTrue)
    testCase.verifyThat(@() isequal(actual,expected),ReturnsTrue)

版本历史记录

在 R2013a 中推出

全部展开