Main Content

matlab.unittest.constraints.IsSameHandleAs 类

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

测试两个句柄数组是否相同

描述

matlab.unittest.constraints.IsSameHandleAs 类提供一个约束来测试句柄数组是否与另一个句柄数组相同。如果两个句柄数组具有相同的大小并且它们对应的元素指向相同的句柄对象,则它们相同。

创建对象

描述

c = matlab.unittest.constraints.IsSameHandleAs(expectedHandle) 创建一个约束来测试句柄数组是否与预期的句柄数组相同并设置 ExpectedHandle 属性。如果句柄数组和 expectedHandle 大小相同并且它们对应的元素指向相同的句柄对象,则满足该约束。

示例

属性

全部展开

预期值,以句柄数组形式返回。在创建约束的过程中指定此属性的值。

属性:

GetAccess
public
SetAccess
private

示例

全部折叠

使用 IsSameHandleAs 约束比较句柄数组。

在当前文件夹下的文件中,创建 ExampleHandle 句柄类。

classdef ExampleHandle < handle
    properties
        Number = 1;
    end
end

导入此示例中使用的类。

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSameHandleAs

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

testCase = TestCase.forInteractiveUse;

创建两个 ExampleHandle 对象,将它们分别赋给变量 h1h2。然后,将 h2 的值赋给另一个变量 h3。变量 h1h2 指向不同对象,但变量 h2h3 指向相同的对象。

h1 = ExampleHandle;
h2 = ExampleHandle;
h3 = h2;

测试 h1h2 是否指向同一个对象。测试失败。

testCase.verifyThat(h1,IsSameHandleAs(h2))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsSameHandleAs failed.
    --> Values do not refer to the same handle.
    
    Actual Value:
      ExampleHandle with properties:
    
        Number: 1
    Expected Handle Object:
      ExampleHandle with properties:
    
        Number: 1

验证 h2h3 指向同一个对象。

testCase.verifyThat(h2,IsSameHandleAs(h3))
Verification passed.

测试 [h2 h3][h3 h2] 是否相同。测试通过,因为对应的向量元素指向同一个对象。

testCase.verifyThat([h2 h3],IsSameHandleAs([h3 h2]))
Verification passed.

测试 [h1 h2][h2 h1] 是否相同。测试失败,因为对应的向量元素指向不同对象。

testCase.verifyThat([h1 h2],IsSameHandleAs([h2 h1]))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsSameHandleAs failed.
    --> Some elements in the handle array refer to the wrong handle.
    
    Actual Value:
      1×2 ExampleHandle array with properties:
    
        Number
    Expected Handle Object:
      1×2 ExampleHandle array with properties:
    
        Number

验证两个不同形状的句柄数组是否不同。

testCase.verifyThat([h1 h1 h2 h3],~IsSameHandleAs([h1 h1; h2 h3]))
Verification passed.

版本历史记录

在 R2013a 中推出

全部展开