主要内容

编写单元测试的方法

为了指导软件开发和监控代码功能中的回归,您可以为程序编写单元测试。MATLAB®单元测试框架支持三种测试创作方案:金宝app

  • 基于脚本的单元测试:将每个单元测试编写为测试脚本文件的单独部分。您可以执行基本限定、访问框架记录在测试结果上的诊断、通过选择要运行的测试来优化测试套件,以及通过创建和配置对象来自定义测试运行TestRunner对象。

  • 基于功能的单元测试:将每个单元测试作为测试函数文件中的局部函数编写。基于函数的测试遵循xUnit测试理念。除了支持基于脚本的测试提供的功金宝app能外,基于功能的测试还允许您访问一组丰富的测试创作特性。例如,您可以使用高级确认特性,包括约束、公差和测试诊断。

  • 基于类的单元测试:将每个单元测试编写为测试类定义文件中的方法。除了支持基于脚本和基于函数的测金宝app试所提供的功能外,基于类的测试还为您提供了一些高级测试创作特性,并允许您访问完整的框架功能。例如,您可以使用共享测试fixture、参数化测试和重用测试内容。

按照增加功能的顺序编写测试方案:基于脚本的测试、基于功能的测试和基于类的测试

基于脚本的单元测试

使用基于脚本的测试,您可以:

  • 定义要在测试之间共享的变量或测试所需的先决条件。

  • 执行基本资格断言函数。例如,你可以使用断言(isequal (actVal, expVal))断言实际值和期望值相等。(高级限定特性仅支持基于功能和基于类的测试。)金宝app

  • 访问由框架记录的测试诊断。有关更多信息,请参见以编程方式访问测试诊断.(高级诊断操作仅支持基于功能和基于类的测试。)金宝app

通常,对于基于脚本的测试,您将创建测试文件,并将文件名传递给runtests函数,而无需显式创建一套测试元素。如果创建显式测试套件(使用testsuite的函数或方法matlab.unittest.TestSuite类),在基于脚本的测试中还有其他可用的特性。使用显式测试套件,您可以:

  • 类中的类来优化您的套件matlab.unittest.selectors包中。(有几个选择器仅适用于基于类的测试。)

  • 创建一个TestRunner对象并自定义它以运行测试。控件中添加插件类matlab.unittest.plugins打包到测试运行程序。

有关基于脚本的测试的详细信息,请参见编写基于脚本的单元测试而且扩展基于脚本的测试

基于功能的单元测试

基于功能的测试支持基于脚本的测试提供的功能金宝app。此外,使用基于函数的测试,您可以:

有关基于函数的测试的详细信息,请参见编写基于函数的单元测试而且扩展基于功能的测试

基于类的单元测试

基于类的测试支持基于脚本和基于功能的金宝app测试提供的功能。此外,使用基于类的测试,您可以:

  • 使用设置和拆卸方法块隐式地设置测试前环境状态,并在运行测试后将其返回到原始状态。有关更多信息,请参见使用类编写安装和拆卸代码

  • 在类之间共享fixture。有关更多信息,请参见使用共享fixture编写测试

  • 将测试分组到类别中,然后使用指定的标记运行测试。有关更多信息,请参见标签单元测试

  • 编写参数化测试以组合并执行指定参数列表上的测试。有关更多信息,请参见在基于类的测试中使用参数

  • 使用子类化和继承来共享和重用测试内容。例如,您可以通过派生子类重用测试类中定义的参数和方法。有关更多信息,请参见类的层次结构-概念

有关基于类的测试的详细信息,请参见在MATLAB中编写基于类的单元测试

扩展单元测试框架

单元测试框架为测试工具作者提供了通过自定义约束、诊断、fixture和插件扩展测试编写的能力。例如,您可以创建一个自定义插件,并在运行基于脚本、基于函数或基于类的单元测试时使用它来扩展测试运行器。有关更多信息,请参见扩展单元测试框架

相关的话题

外部网站