主要内容

编写基于功能的单元测试

创建测试函数

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

创建主函数

main函数将所有本地测试函数收集到一个测试数组中。main函数的名称对应于您的测试文件的名称,并且应该以'test'开头或结尾,这是不区分大小写的。如果文件名不是以“test”开头或结尾,在某些情况下,文件中的测试可能会被忽略。在本例中,MATLAB文件为exampleTest.m.主函数需要调用functiontests要生成测试数组,测试.使用localfunctions作为输入functiontests自动生成文件中所有本地函数句柄的单元格数组。这是一个典型的主要功能。

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

创建本地测试函数

单独的测试函数作为局部函数包含在与主(测试生成)函数相同的MATLAB文件中。这些测试函数名必须以不区分大小写的单词' test '开头或结尾。每个本地测试函数必须接受一个单一的输入,这是一个功能测试用例对象,testCase.测试框架自动生成该对象。有关创建测试函数的更多信息,请参见用函数编写简单的测试用例验证、断言和其他资格的表.这是骨骼局部测试功能的一个典型例子。

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

创建可选的Fixture函数

安装和拆卸代码,也称为测试fixture函数,设置系统的预测试状态,并在运行测试后将其返回到原始状态。这些函数有两种类型:每个测试文件运行一次的文件fixture函数,以及在每个本地测试函数之前和之后运行的fresh fixture函数。生成测试不需要这些函数。通常,使用新鲜fixture比使用文件fixture更可取,以增加单元测试封装。

一个功能测试用例对象,testCase,必须是文件夹具和新夹具函数的唯一输入。测试框架自动生成该对象。的TestCase对象是在设置函数、测试函数和拆卸函数之间传递信息的一种方法。它的TestData属性默认为结构体,它允许轻松添加字段和数据。这个测试数据的典型用法包括路径和图形句柄。举个例子TestData财产,看到使用安装和拆卸函数编写测试

文件夹具功能。使用文件fixture函数在文件中的所有测试中共享设置和拆卸函数。文件fixture函数的名称必须为setupOnceteardownOnce,分别。这些函数对每个文件执行一次。您可以使用文件fixture在测试之前设置一个路径,然后在测试之后将其重置为原始路径。这是框架文件fixture设置和拆卸代码的典型示例。

函数setupOnce (testCase)%不更改函数名例如,设置一个新的路径结束函数teardownOnce (testCase)%不更改函数名例如,将%更改回原始路径结束

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

函数设置(testCase)%不更改函数名例如,打开一个数字结束函数拆卸(testCase)%不更改函数名% close figure,例如结束

程序清单模板

%%生成测试的主要函数函数测试= exampleTest测试= functiontests(localfunctions);结束% %测试函数函数testFunctionOne (testCase)%测试专用代码结束函数testFunctionTwo (testCase)%测试专用代码结束%%可选文件固定装置函数setupOnce (testCase)%不更改函数名例如,设置一个新的路径结束函数teardownOnce (testCase)%不更改函数名例如,将%更改回原始路径结束%%可选的新鲜装置函数设置(testCase)%不更改函数名例如,打开一个数字结束函数拆卸(testCase)%不更改函数名% close figure,例如结束

运行测试

当您运行基于函数的测试时,测试框架将执行以下任务:

  1. 创建由本地测试函数指定的测试数组。

  2. 如果setupOnce函数指定时,运行该函数建立系统的预测试状态。

  3. 对于每个测试,运行相应的本地测试函数。如果设置函数,请在运行本地测试函数之前运行它。如果拆卸函数,请在运行本地测试函数后运行它。

  4. 如果teardownOnce函数时,运行该函数将系统的预测试状态返回到初始状态。

运行基于功能的测试的工作流

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

结果= runtests (“exampleTest.m”

或者,您可以使用运行函数。

结果=运行(exampleTest)

有关运行测试的详细信息,请参见runtests运行各种工作流的测试

分析结果

要分析测试结果,请检查来自的输出结构runtests运行.对于每个测试,结果都包含测试函数的名称,无论它是否通过、失败或未完成,以及运行测试所花费的时间。有关更多信息,请参见分析测试用例结果分析失败的测试结果

另请参阅

||

相关的话题