写基于函数的单元测试

创建测试函数

测试函数是一个单独的MATLAB®包含主函数和您的单个本地测试函数的文件。可选地,您可以包括文件fixture和刷新fixture函数。文件的设备由一个文件中的所有测试共享的设置和拆卸函数组成。这些函数对每个测试文件执行一次。新的设备由在每个本地测试函数之前和之后执行的setup和teardown函数组成。

创建主功能

main函数将所有本地测试函数收集到一个测试数组中。由于它是主函数,所以函数名与您的名称相对应。m文件,并遵循以单词“test”开始或结束的命名约定,该单词不区分大小写。在本例中,MATLAB文件为exampleTest.m。主要功能需要拨打电话到functiontests生成测试阵列,测试。使用localfunctions作为输入functiontests自动生成文件中所有本地函数句柄的单元格数组。这是一个典型的主函数。

函数测试= exampleTest测试= functiontests(localfunctions);结束

创建本地测试函数

各个测试功能被包括在相同的MATLAB文件作为主要(测试生成)功能本地函数。这些测试函数名称必须开始或不区分大小写的话,“测试”结束。每个局部测试功能必须接受的单个输入,这是一个功能测试对象的情况下,testCase。单元测试框架自动生成此对象。有关创建测试函数的更多信息,请参见用函数编写简单的测试用例验证表,断言,和其他资格。这是骨骼局部测试功能的一个典型例子。

函数testFunctionOne (testCase)%测试专用代码结束函数FunctionTwotest (testCase)%测试专用代码结束

创建可选的Fixture函数

安装和拆卸的代码,也被称为测试夹具的功能,建立系统的预测试状态和运行试验后使其返回到原来的状态。有两种类型的这些功能:文件夹具功能每测试文件运行一次,和新鲜的夹具功能之前和每个本地测试功能后运行。这些功能不需要生成测试。一般来说,优选的是用新鲜夹具在文件夹具,以增加单元测试封装。

一个功能测试用例对象,testCase必须是唯一输入到文件夹具和新鲜夹具的功能。单元测试框架自动生成此对象。的TestCase目的是通过设置功能,测试功能,和拆卸功能之间的信息的装置。它的TestData属性默认为a结构体,这允许容易加成的字段和数据。该测试数据的典型用途包括路径和图形手柄。对于使用的示例TestData财产,见使用Setup和Teardown函数编写测试

文件夹具功能。使用文件fixture函数来跨文件中的所有测试共享设置和拆卸函数。文件fixture函数的名称必须为setupOnceteardownOnce,分别。这些函数执行单时间为每个文件。您可以使用文件灯具测试之前要设置的路径,然后测试后将其重置为原来的路径。这是骨骼文件夹具安装和拆卸码的典型的例子。

函数setupOnce (testCase)不要更改函数名称%设置新的路径,例如结束函数teardownOnce (testCase)不要更改函数名称%变回原来的路径,例如结束

新夹具的功能。使用新的fixture函数为每个本地测试函数设置和关闭状态。这些新的fixture函数的名称必须是设置拆卸,分别。您可以在测试前使用新的固定装置获得一个新的图形,并在测试后关闭该图形。这是骨架测试函数级别设置和拆除代码的典型示例。

函数设置(测试用例)不要更改函数名称打开一个图形,例如结束函数拆卸(testCase)不要更改函数名称例如,接近的数字结束

程序列表模板

%%主要功能生成测试函数测试= exampleTest测试= functiontests(localfunctions);结束% %测试函数函数testFunctionOne (testCase)%测试专用代码结束函数FunctionTwotest (testCase)%测试专用代码结束%%可选的文件装置函数setupOnce (testCase)不要更改函数名称%设置新的路径,例如结束函数teardownOnce (testCase)不要更改函数名称%变回原来的路径,例如结束%%可选新鲜固定装置函数设置(测试用例)不要更改函数名称打开一个图形,例如结束函数拆卸(testCase)不要更改函数名称例如,接近的数字结束

运行测试

下图详细说明了运行测试时执行的任务。

要从命令提示符运行测试,请使用runtests与MATLAB测试文件作为输入命令。例如:

结果= runtests (“exampleTest.m”)

属性也可以运行测试运行函数。

结果=运行(exampleTest)

有关运行测试的更多信息,请参见runtests参考页面和为各种工作流运行测试

分析结果

要分析测试结果,请检查输出结构runtests要么运行。对于每个测试,结果包含测试函数的名称,是否通过,失败或没有完成,而且所花费的时间来运行测试。欲了解更多信息,请参阅分析测试用例结果分析失败的测试结果

另请参阅

||

相关话题