Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

matlab.unittest.constraints.IsOfClass 类

包: matlab.unittest.constraints
超类: matlab.unittest.constraints.BooleanConstraint

限定为某类的约束

构造

IsOfClass(class) 创建一个约束,限定为某类。如果实际值的类与 class 相同,则满足该约束。如果实际值派生于 class,则不满足该约束。

输入参数

class

类名称,实际值必须与该类名称匹配才满足约束,指定为由字符向量或 meta.class 实例表示的完全限定的类名称。

属性

Class

满足约束时必须与实际值匹配的类名称。此属性由构造函数通过 class 输入参数设置。

复制语义

值。要了解值类如何影响复制操作,请参阅复制对象

示例

全部折叠

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsOfClass

testCase = TestCase.forInteractiveUse;

验证实际值 5 是否为双精度值。

testCase.verifyThat(5, IsOfClass('double'))
Interactive verification passed.

使用 meta.class 的实例而不是字符向量重复该测试。

testCase.verifyThat(5, IsOfClass(?double))
Interactive verification passed.

断言零是逻辑类的实例。

testCase.assertThat(0, IsOfClass('logical'))
Interactive assertion failed.

---------------------
Framework Diagnostic:
---------------------
IsOfClass failed.
--> The value's class is incorrect.
    
    Actual Class:
        double
    Expected Class:
        logical

Actual Value:
         0
Assertion failed.

验证 @sin 是否为函数句柄。

testCase.verifyThat(@sin, IsOfClass(?function_handle))
Interactive verification passed.

验证 name 是否为 char 类的实例。

name = 42;
testCase.verifyThat(name, IsOfClass('char'))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsOfClass failed.
--> The value's class is incorrect.
    
    Actual Class:
        double
    Expected Class:
        char

Actual Value:
        42

在工作文件夹下的文件中,创建从 handle 类继承的 DerivedExample 类。

classdef DerivedExample < handle
end

在命令提示符处,创建测试用例以执行交互式测试。

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsOfClass

testCase = TestCase.forInteractiveUse

验证 DerivedExample 类的实例是否为 handle 的实例。

exObj = DerivedExample;
testCase.verifyThat(exObj, IsOfClass(?handle))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsOfClass failed.
--> The value's class is incorrect.
    
    Actual Class:
        DerivedExample
    Expected Class:
        handle

Actual Value:
      DerivedExample with no properties.

尽管 exObj 派生自 handle 类,但它不是 handle 类的实例。

验证 DerivedExample 类的实例是否为 DerivedExample 的实例。

testCase.verifyThat(exObj, IsOfClass(?DerivedExample))
Interactive verification passed.

另请参阅

|