在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
JUnit 测试原理介绍与应用,JUnit是一个单元测试框架,使用注解的形式来指定需要测试的方法。JUnit测试其实就是执行一个类中的方法,且仅用于测试,称之为测试类,使用 @Test 注解标注。
1、JUnit测试是什么?
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
JUnit是由Erich Gamma 和 Kent Beck 编写的一个回归测试框架。JUnit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何完成功能和完成什么样的功能。JUnit是一套框架,继承TestCase类,就可以用JUnit进行自动测试了。
JUnit测试类似于c语言中的调试,只不过那个调试是通过设置断点分隔代码来进行测试;而java中的JUnit则是通过分开测试不同的类和方法实现的。
2、JUnit运行环境
JUnit可以通过ide实现快捷的测试,我这里使用的是eclipse,在需要测试的类那里添加 new-other-java-JUnit即可进行测试。这里采用的是JUnit4进行调试,最新的JUnit版本为JUnit5.关于这两种版本的区别,最显着的区别是在支持版本上的区别:java4支持java5及以上的版本,而java5则只支持java8以上的版本。
3、JUnit命名约定
JUnit 测试有几个潜在命名约定。一种广泛的解决方案就是在测试类的名字末尾添加 “Test” 后缀。
作为一般的规则,每个测试方法的名称应该明确说明当前的测试任务。如果该测试方法正确地完成了,就避免了再去实际代码中查看实现逻辑。
还有一种约定就是在测试方法名称中使用“should"。例如,"ordersShouldBeCreated"或者”menuShouldGetActive"。这样就可以提示我们这个测试方法都做了什么。另一种方法是用“Given[ExplainYourInput]When[WhatIsDone]Then[ExpectedResult]”来作为测试方法的名字。
4、测试执行顺序
JUnit假定所有的测试方法都可以按任意的顺序执行。质量高的测试代码不应该假定任何的顺序,就是说,一段测试代码不能依赖其他的测试代码。
在JUnit4.11中,默认使用的是确定的但不可预测的顺序来执行测试的(As of JUnit 4.11 the default is to use a deterministic, but not predictable, order for the execution of the tests.)
当然你可以使用注解的方式来定义测试方法的名称以字典顺序排序。如果想开启此功能,需要使用@FixMethodOrder(MethodSorters.NAME_ASCENDING)注解标注这个测试类,你也可以通过设置MethodSorters.DEFAULT参数来明确使用默认值。也可以使用MethodSorters.JVM明确它使用JVM的默认值。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java基础 "=="和 equals 方法究竟有什么区别?
Java基础 "=="和 equals 方法究竟有什么区别?==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
7694
2019-05-23 11:31:26
MC版本Java版5大功能优势
众所周知java开发应用广泛,Java版本被很多人认为是最好的MC版本,MC版本Java版5大功能优势有什么呢?Java版开发优势:支持更多的模组、各种节日彩蛋、官方更高的重视性、游戏画面色彩更好、操作更方便。
8051
2019-08-14 18:12:21
Java流行框架Struts、Hibernate和Spring对比
最近几年Java一直名列最受欢迎的编程语言榜前,而在Java开发中Struts、Hibernate和Spring这三流行框架常常起了关键作用,因此本文将对比这三种Java流行框架,分析它们的产生和各自的优缺点。
6091
2019-08-02 12:03:48
Java开发中各个阶段常用工具汇总
一个完整的Java项目开发的整个过程中,会使用到各种各样的工具。而同一个阶段有非常多的工具提供选择,而因为整个项目并非一个人完成的,所以要涉及到非常的团队协作工作。因此在选择每个阶段工具的使用的时候,最好是选择大家普遍使用的,这样才能更好的完成团队协作。本文就为大家整理Java开发中各个阶段常用的工具汇总。
6478
2019-08-05 18:11:56
Redis哨兵模式免费教程
哨兵(Sentinel)主要是为了解决在主从复制架构中从Redis宕机和主Redis宕机的情况。Redis-Sentinel是用于管理Redis集群:监控(Monitoring、提醒(Notification)、自动故障迁移(Automatic failover)。
4000
2019-12-04 11:26:30