MATLAB----单元测试

286 篇文章 32 订阅
236 篇文章 15 订阅

0.1什么是框架

从逻辑上来说,框架(Framework),是⼀个⽐⾯向对象和设计模式更加复杂的结构,但读者不⽤担⼼,虽然框架在结构上⽐模式要复杂,但是学习起来要⽐设计模式简单得多。我们这⾥介绍的不是关于如何设计框架,⽽是介绍如何利⽤现成的框架为⼯程计算服务,理解设计模式不是使⽤框架的前提,甚⾄不⽤理解⾯向对象,也可以享受框架给我们⼯程计算带来的便利。设计模式教给我们的是编程的指导思想,没有现成的代码可以直接套⽤,模式每次的使⽤,都要通过重新编程来实现;⽽框架,是包装好的即时可以使⽤的代码,可以直接的反复被使⽤。设计模式处理的是软件程序设计中的局部的⾏为,⽽框架处理的是更⼤系统。模式是组成框架的基⽯,框架的设计和实现包含中多种模式。设计模式的应⽤范围很⼴,⽽框架通常限定了应⽤范围,⽐如:单元测试框架保证我们在算法开发的同时能够保证已有的程序功能不会退化,⽽性能测试框架保证算法性能不退化,⽅便的⽐较不同算法的性能。

0.2基于函数的单元测试的构造

在介绍inputParser的时候,我们通过不断改进getArea函数对输⼊参数的处理⽅法,引⼊这样⼀个观点:⼀个可靠的科学⼯程计算项⽬必须有⼀套测试系统,才能防⽌开发的过程中算法退化,⼯程项⽬的推进必须在算法开发和算法测试之间不断迭代完成。在附录??的最后,还根据直觉提出了⼀个测试系统所应该有的基本功能。在本章中,我们将学习MATLAB从R2013a开始提供的测试解决⽅案:MATLAB单元测试(MATLABUnitTests)。MATLAB单元测试框架可以接受不同格式的测试⽂件,本书介绍两种,⼀种是基于函数(Function-Based)的,另种基于类⽂件(Class-Based)如图1所⽰,先介绍基于函数的单元测试。
在这里插入图片描述

MATLAB基于函数的单元测试构造很简单,⽤户通过⼀个主测试函数和若⼲局部测试函数①(LocalFunction)来组织各个测试。⽽测试的运⾏则交给MATLAB的单元测试Framework去完成。主测试函数和局部测试函数看上去和普通的MATLAB函数没有区别,如图2所⽰,只是命名上有⼀些规定⽽已,这些特殊的规定是为了Framework可以和测试函数契合⽽规定的。
在这里插入图片描述
命名规则如下:主函数的名称由⽤户任意指定,和其他的MATLAB函数⽂件⼀样,该⽂件的名称需要和函数的名称的相同.(如果主函数的名称是testmainfunc,该⽂件名称则是testmainfunc.m)。在主函数中,必须调⽤⼀个叫做functiontests的函数,搜集该函数中的所有局部函数,产⽣⼀个包含这些局部函数的函数局部的测试矩阵并返回给Framework,如下所⽰:
在这里插入图片描述
其中localfunctions是⼀个MATLAB函数,⽤来返回所有局部函数的函数句柄。局部函数的命名必须以test开头,局部函数只接受⼀个输⼊参数,即测试对象,即下⾯例⼦中的形参testCase
在这里插入图片描述
其中testCase由单元测试Framework提供,即Framework将⾃动的调⽤该函数,并且提供testCase参数。按照规定,要运⾏单元测试中的所有测试,必须调⽤runtests函数
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值