为了指导软件开发并监视代码功能的退化,可以为程序编写单元测试。MATLAB®单元测试框架支持三个测试创作方案:万博1manbetx
基于脚本的单元测试:将每个单元测试写为测试脚本文件的单独部分。您可以执行基本资格,访问框架记录在测试结果上的诊断,通过选择要运行的测试来完善测试套件,并通过创建和配置a来自定义测试运行TestRunner
目的。
基于函数的单元测试:将每个单元测试写入测试功能文件中的本地函数。基于功能的测试订阅了XUNIT测试哲学。除了支持基于脚本的测试提供的功万博1manbetx能之外,基于功能的测试还可以访问丰富的测试创作功能。例如,您可以使用高级资格功能,包括约束,公差和测试诊断。
基于类的单元测试:将每个单元测试写成测试
方法在类定义文件中。除了支持基于脚本和基于函数的测万博1manbetx试提供的功能外,基于类的测试还为您提供了几个高级测试编写特性,并使您能够访问完整的框架功能。例如,您可以使用共享的测试装置、参数化测试和重用测试内容。
使用基于脚本的测试,您可以:
定义测试之间共享的变量或测试所需的先决条件。
使用该基本资格断言
功能。例如,您可以使用断言(isequal (actVal, expVal))
断言实际值和期望值相等。(高级资格特性仅支持基于函数和基于类的测试。)万博1manbetx
访问框架记录的测试诊断。有关更多信息,请参见以编程方式访问测试诊断.(仅对基于函数和基于类的测试支持高级诊断操作。)万博1manbetx
通常,对于基于脚本的测试,您创建一个测试文件,并将文件名传递给runtests.
函数,而不显式地创建测试
元素。如果您创建显式测试套件(使用testsuite.
的函数或方法matlab.unittest.TestSuite
类),在基于脚本的测试中还有其他可用的特性。通过显式测试套件,您可以:
改进您的套件,例如,使用matlab.unittest.Selectors.
包中。(一些选择器仅适用于基于类的测试。)
创建一个TestRunner
对象并自定义它以运行测试。您可以在中添加插件类matlab.unittest.plugins
打包到测试运行器。
有关基于脚本的测试的更多信息,请参阅编写基于脚本的单元测试和扩展基于脚本测试.
基于函数的测试支持基于脚本的测试提供的功能万博1manbetx。此外,使用基于函数的测试,您可以:
设置系统的预测试状态并在运行测试后将其返回到原始状态。您可以每次测试文件或每单位测试一次执行这些任务。有关更多信息,请参见使用设置和拆卸功能进行写入测试.
中的fixture类matlab.unittest.fixtures
包(applyFixture
方法)来处理常用测试操作的设置和拆卸。
通过使用通过使用的详细级别记录诊断信息日志
方法。
充分利用图书馆的资格证书matlab.unittest.qualifications
包中。要确定使用哪种资格,请参阅验证、断言和其他资格的表.
使用高级确认功能,包括约束、实际值代理、公差和测试诊断。中的类可以使用matlab.unittest.constraints
和matlab.unittest.diagnostics.
在你的资历。
有关基于功能的测试的详细信息,请参见编写基于功能的单元测试和扩展基于函数的测试.
基于类的测试支持基于脚本和基于函数的万博1manbetx测试提供的功能。此外,使用基于类的测试,您可以:
使用设置和拆卸方法块隐式设置预测试环境状态,并在运行测试后将其返回到原始状态。有关更多信息,请参见使用类编写安装和拆卸代码.
分享课程中的夹具。有关更多信息,请参见使用共享fixture编写测试.
将组测试分类,然后使用指定标记运行测试。有关更多信息,请参见标签单元测试.
编写参数化测试以在指定的参数列表上组合和执行测试。有关更多信息,请参见在基于类的测试中使用参数.
使用子类化和继承来共享和重用测试内容。例如,您可以通过派生子类重用测试类中定义的参数和方法。有关更多信息,请参见类的层次结构-概念.
有关基于类测试的更多信息,请参阅作者基于类的单元测试在MATLAB.
单元测试框架为测试工具作者提供了通过自定义约束、诊断、fixture和插件扩展测试编写的能力。例如,您可以创建自定义插件,并在运行基于脚本、基于函数或基于类的单元测试时使用它扩展测试运行器。有关更多信息,请参见扩展单元测试框架.