Main Content

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

matlab.unittest.constraints.IsInstanceOf 类

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

限定对象包含在给定类层次结构中的约束

构造

IsInstanceOf(class) 创建一个约束,限定对象位于所给定类层次结构中。如果实际值实例与 class 存在“isa”关系,则满足该约束。

输入参数

class

类名称,实际值必须是从其派生的或必须为其的实例才可满足约束,指定为由字符向量或 meta.class 实例表示的完全限定的类名称。

属性

Class

满足约束时实际值必须从其派生或必须为其实例的类名称。此属性由构造函数通过 class 输入参数设置。

复制语义

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

示例

全部折叠

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsInstanceOf

testCase = TestCase.forInteractiveUse;

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

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

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

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

断言零是逻辑类的实例。

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

---------------------
Framework Diagnostic:
---------------------
IsInstanceOf failed.
--> The value must be an instance of the expected type.
    
    Actual Class:
        double
    Expected Type:
        logical

Actual Value:
         0
Assertion failed.

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

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

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

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

---------------------
Framework Diagnostic:
---------------------
IsInstanceOf failed.
--> The value must be an instance of the expected type.
    
    Actual Class:
        double
    Expected Type:
        char

Actual Value:
        42

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

classdef DerivedExample < handle
end

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsInstanceOf

testCase = TestCase.forInteractiveUse;

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

exObj = DerivedExample;
testCase.verifyThat(exObj, IsInstanceOf(?handle))
Interactive verification passed.

尽管 exObj 不是 handle 类的实例,但验证通过,因为它派生自 handle 类。

另请参阅

|