这个例子展示了如何测试一个函数,这个函数是通过编写一个实时脚本创建的,“TestRightTriLiveScriptExample.mlx”
.示例函数计算直角三角形的角度,您可以创建一个基于活动脚本的单元测试来测试该函数。
基于实时脚本的测试必须遵守以下约定:
测试文件的名称必须以“test”开头或结尾,不区分大小写。如果文件名不是以“test”开头或结尾,在某些情况下,文件中的测试可能会被忽略。
将每个单元测试放在活动脚本文件的单独部分中。如果一个部分在heading 1样式中有一个标题,则该标题将成为测试元素的名称。否则,MATLAB会给测试分配一个名称。
考虑如何运行基于实时脚本的测试。如果您使用运行按钮在实时编辑器和MATLAB中遇到测试失败,然后它停止执行脚本,不运行任何剩余的测试。如果您使用单元测试框架运行活动脚本,例如使用runtests
函数,然后如果MATLAB遇到测试失败,它仍然运行其余的测试。
当一个活动脚本作为测试运行时,在一个测试中定义的变量不能在其他测试中访问。类似地,测试无法访问在其他工作空间中定义的变量。
在这个例子之外,在当前的MATLAB文件夹中,在一个文件中创建一个函数,rightTri.m
.这个函数以三角形的两条边的长度作为输入,并返回相应的直角三角形的三个角。输入边是三角形的两条短边,而不是斜边。
类型rightTri.m
if (A = atand(sides(1)/sides(2)));B = atand(边(2)/(1)两侧);斜边=边(1)/信德(一个);C = asind(斜边*信德(A) /(1)两侧);[A B C];结束
您可以在活动脚本中包含等式和图像,以帮助记录测试。为小角度近似值创建以下测试。通常,在比较浮点值时,要指定比较的公差。
的rightTri
函数应返回与小角度近似一致的值,以便
.
角度= rightTri([1 1500]);smallAngleInRadians角=(π/ 180)* (1);%转换为弧度约=罪(smallAngleInRadians);断言(abs (approx-smallAngleInRadians) < = 1平台以及,“小角度近似问题”)
你可以有多个断言
同一个测试中的陈述。但是,如果第一个断言失败,MATLAB不会计算其余语句。
得到的直角三角形的所有角的和应该总是180度。
角度= rightTri([7 9]);assert(sum(angles) == 180) angles = rightTri([4 4]);assert(sum(angles) == 180) angles = rightTri([2 2*√(3)]);断言(和(角)= = 180)
测试三角形的边减少到1和 .这种情况下,角是 .
托尔= 1平台以及;角度= rightTri([2 2*根号(3)]);Assert (abs(角度(1)-30)<= tol)
对于等腰三角形,两个非直角都必须是45度;否则断言
抛出一个错误。
检验三角形的两边是否相等。这种情况下,同位角是相等的。
角度= rightTri([4 4]);Assert(角度(1)== 45)
要运行测试,最佳实践是通过runtests
函数而不是运行按钮。测试框架提供了额外的诊断信息。在测试失败的情况下,框架运行后续的测试,但是运行按钮则不能。例如,要在MATLAB命令提示符下运行这个测试,输入结果= runtests(“TestRightTriLiveScriptExample”)
.有关更多信息,请参见runtests
.