编写单元测试的方法
要在代码功能中指导软件开发并监视回归,您可以为您的程序编写单元测试。matlab® 单元测试框架支持三种测试编写方案:
基于脚本的单元测试:将每个单元测试编写为测试脚本文件的一个单独的节。您可以执行基本验证,访问框架在测试结果上记录的诊断信息,通过选择要运行的测试来优化测试套件,以及通过创建和配置 对象来自定义测试运行。
基于函数的单元测试:将每个单元测试编写为测试函数文件中的一个局部函数。基于函数的测试采用 xunit 测试原理。除了支持基于脚本的测试所提供的功能之外,基于函数的测试还支持您访问一组丰富的测试编写功能。例如,您可以使用高级验证功能,包括约束、容差和测试诊断。
基于类的单元测试:将每个单元测试编写为类定义文件中的一个
test
方法。除了支持基于脚本和基于函数的测试所提供的功能之外,基于类的测试还为您提供一些高级的测试编写功能,并支持您访问完整的框架功能。例如,您可以使用共享测试脚手架、参数化测试和重用测试内容。
基于脚本的单元测试
通过基于脚本的测试,您可以:
定义要在测试中共享的变量或测试所需的预条件。
使用 函数执行基本验证。例如,您可以使用
assert(isequal(actval,expval))
来断言实际值和预期值相等。(仅基于函数和基于类的测试支持高级验证功能。)访问框架记录的测试诊断。有关详细信息,请参阅。(仅基于函数和基于类的测试支持高级诊断操作。)
通常,使用基于脚本的测试,您可以创建测试文件并将文件名传递给 函数,而无需显式创建 test
元素的套件。如果您创建了一个显式测试套件(使用 函数或 类的方法),则基于脚本的测试中会提供其他功能。借助显式测试套件,您可以:
优化您的套件,例如,使用 包中的类来优化套件。(一些选择器只适用于基于类的测试。)
创建
testrunner
对象,并对其进行自定义以运行您的测试。您可以将 包中的插件类添加到测试运行程序中。
有关基于脚本的测试的详细信息,请参阅和。
基于函数的单元测试
基于函数的测试支持基于脚本的测试所提供的功能。此外,通过基于函数的测试,您可以:
设置系统的预测试状态并在运行测试后将其恢复为原始状态。您可以对每个测试文件执行一次这些任务,或对每个单元测试执行一次。有关详细信息,请参阅。
使用 包中的脚手架类(使用 方法)来处理常用测试动作的设置和拆解。
使用 方法以一定的详细程度记录诊断信息。
使用 包中的完整验证库。要确定应使用哪种验证,请参阅。
使用高级验证功能,包括约束、实际值代理、容差和测试诊断。您可以在验证中使用 和 包中的类。
有关基于函数的测试的详细信息,请参阅和。
基于类的单元测试
基于类的测试支持基于脚本和基于函数的测试所提供的功能。此外,通过基于类的测试,您可以:
使用设置和拆解方法块,用于隐式设置预测试环境状态并在运行测试后将其恢复为原始状态。有关详细信息,请参阅。
在类之间共享脚手架。有关详细信息,请参阅。
将测试划分为多个类别,然后运行具有指定标记的测试。有关详细信息,请参阅。
编写参数化测试,用于在指定的参数列表上合并和执行测试。有关详细信息,请参阅。
使用子类化和继承来共享和重用测试内容。例如,您可以通过派生子类来重用在测试类中定义的参数和方法。有关详细信息,请参阅。
有关基于类的测试的详细信息,请参阅。
扩展单元测试框架
单元测试框架使测试框架编写者能够通过自定义约束、诊断、脚手架和插件来扩展测试编写。例如,您可以创建一个自定义插件,并在运行基于脚本、基于函数或基于类的单元测试时使用它来扩展测试运行程序。有关详细信息,请参阅。