Main Content

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

matlab.unittest.diagnostics.FunctionHandleDiagnostic 类

包: matlab.unittest.diagnostics
超类: matlab.unittest.diagnostics.Diagnostic

使用显示的函数输出作为诊断结果

描述

matlab.unittest.diagnostics.FunctionHandleDiagnostic 类使用显示的函数输出来定义诊断结果。此输出与 MATLAB® 运行该函数时在命令提示符中显示的文本相同。如果诊断信息可从显示的函数输出中获得,请使用 FunctionHandleDiagnostic 类来显示该诊断信息。

当使用 verifyThat 等验证方法时,您可以将测试诊断直接指定为函数句柄。在这种情况下,测试框架会自动构造 FunctionHandleDiagnostic 对象,并将其与指定的函数句柄相关联。

matlab.unittest.diagnostics.FunctionHandleDiagnostic 类是 handle 类。

创建对象

描述

示例

diag = matlab.unittest.diagnostics.FunctionHandleDiagnostic(fcn) 创建一个 FunctionHandleDiagnostic 对象并设置其 Fcn 属性。

属性

全部展开

用于生成诊断信息的函数句柄,以 function_handle 对象形式返回。

所生成的诊断信息等效于将输出显示在 MATLAB 命令提示符中。该结果将被打包供测试框架使用,后者不一定会在命令提示符中显示该信息。

属性:

GetAccess
public
SetAccess
private

用于生成诊断信息的文本,以字符向量形式返回。此属性是在计算 diagnose 方法的过程中定义的。

DiagnosticText 属性为诊断的使用方(例如测试框架)提供了一种传达实际诊断信息的方法。

属性:

GetAccess
public
SetAccess
protected

方法

全部展开

示例

全部折叠

创建一个诊断结果,它会在测试失败时显示 dir 命令的输出。

首先,在当前文件夹中创建一个子文件夹。

mkdir("subfolderInCurrentFolder")

导入此示例中使用的类。

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsEqualTo
import matlab.unittest.diagnostics.FunctionHandleDiagnostic

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

testCase = TestCase.forInteractiveUse;

使用 FunctionHandleDiagnostic 对象显示测试失败时的诊断信息。当测试失败时,FunctionHandleDiagnostic 对象显示当前文件夹的内容,在本例中指的是 subfolderInCurrentFolder 文件夹。

testCase.verifyThat(1,IsEqualTo(2),FunctionHandleDiagnostic(@dir))
Verification failed.

----------------
Test Diagnostic:
----------------

.                         ..                        subfolderInCurrentFolder  



---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> NumericComparator failed.
    --> The numeric values are not equal using "isequaln".
    --> Failure table:
                Actual    Expected    Error    RelativeError
                ______    ________    _____    _____________
            
                1         2           -1       -0.5         

Actual Value:
         1
Expected Value:
         2

或者,测试框架可以通过 verifyThat 方法的函数句柄输入创建一个 FunctionHandleDiagnostic 对象。

testCase.verifyThat(1,IsEqualTo(2),@dir)
Verification failed.

----------------
Test Diagnostic:
----------------

.                         ..                        subfolderInCurrentFolder  



---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> NumericComparator failed.
    --> The numeric values are not equal using "isequaln".
    --> Failure table:
                Actual    Expected    Error    RelativeError
                ______    ________    _____    _____________
            
                1         2           -1       -0.5         

Actual Value:
         1
Expected Value:
         2

测试框架根据需要构造 FunctionHandleDiagnostic 对象,通常只在测试失败时才构造。

版本历史记录

在 R2013a 中推出