junit简单介绍

整体内容顺序转载自百度百科:junit 下面也添加了自己的见解
以前在做单元测试时不怎么注意,感觉单元测试有时候是多余的,但是现在工作了,才知道原来单元测试这么牛逼,虽然简单,但是里面的东西会很帮助我们,如果你现在还只是简单的运用junit,而不是在项目里时刻的用到,那么你可能很牛逼了,竟然靠经验就可以知道这个有没有bug。

Junit是一个java语言的单元测试框架,也是回归测试框架,在软件软工中也叫白盒测试,继承TestCase类(Junit4的测试类不用再继承TestCase父类,引入了Annotation(注解))

一、junit的优点

  1. 极限编程:要求在编写代码前先写测试,这样可以强制你在写代码之前好好思考代码的功能与逻辑,否则编写的代码很不稳定,也通俗的叫在写代码前自己想想你这个方法根据参数想得到的结果是什么? 也可以认为是从结果出发,所以很锻炼你的思维,让你养成极限的思维:构思->编写测试代码->编写代码->测试。而且可以很快的找到问题的原因,不怕以后忙起来忘了这里原来是怎么测试的,并进行重复繁琐的测试工作。
  2. 重构:这个也是改一点测一点,减少回归错误造成的时间消耗,就算重构也不会影响你这个犯法返回的结果什么,重构只是让代码更加简洁,更加易懂,得到的结果如果改变,就不叫重构了。
  3. 自动化:以前我们自己测试要debug打断点或者输出结果看看,这样增加了自己的工作量,影响我们的效率,尤其是对于复用的方法,如果里面的逻辑变了,是否会得到我们想要的结果。而junit就帮我们全部做了,它有断言功能,Assert来对结果进行比较,是否符合自己的预期,非常方便。比如java肯定要面向接口编程,那一个接口服务就可以做一个单元测试,当服务里面的逻辑更改后,只需要动动鼠标就知道自己的这个服务是否能得到自己想要的结果
  4. 隔离性:这个就需要我们自己去设置,一般推荐测试用例不要是历史数据,因为一旦丢失,单元测试就会失败。需要注意的是单元测试类的单元测试方法之间是互不干扰的,而且执行顺序是不可预测的,不要想着先执行这个单元测试,留下结果给下一个单元测试,这是非常不对的,。

二、用junit需要注意的事情

  1. 不要用TestCase的构造函数初始化Fixture,而要用setUp()tearDown(),junit4就可以用**@Before**和 @After代替
  2. 不要依赖或假定测试运行的顺序,因为Junit利用Vertor保存测试方法,所以不同的平台会按不同的顺序Vertor中取出测试方法。
  3. 避免编写有副作用的TestCase,如果测试数据依赖于某些特定的交易数据,就不要提交交易数据,简单回滚就可以(前提是需要设置事务)
  4. 测试类和测试方法应该有一致的命名方案,如在工作类名前加Test形成测试类名,方法名前加test
  5. 确保测试与时间无关,不要依赖使用过期的数据,导致后期维护过程很难重现测试,尤其是你用的数据被删除了
  6. 如果编写的软件面向国际市场,编写测试时就要考虑国际化的因素,不要仅用母语的Local进行测试。
  7. 尽可能的利用Junit提供的Assert/Fail方法以及异常处理的方法,可以使代码简洁、高效,自动化。
  8. 测试尽可能的小(一个方法一个单元测试一般不会这样,自己一般是一个服务一个单元测试方法,一个Controller一个单元测试方法),执行速度快(这个就要看你这个测试有没有时间要求)
  9. 不要硬性规定数据文件的路径,尤其是本地文件,否则再别的机器上可能就会找不到路径
  10. 利用Junit的自动异常处理,不用在测试方法里写try{}catch{},Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。
发布了213 篇原创文章 · 获赞 22 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43113679/article/details/103838948
今日推荐