在线客服
扫描二维码
下载博学谷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 开发中20种常用类库和 API
java开发人员应该熟悉的常用的库与API::日志、JSON解析、单测、XML解析、字节码处理、数据库连接池、集合类、邮件、加密、嵌入式SQL数据库、JDBC故障诊断以及序列化等20个方面的常用类库!
9618
2019-07-24 18:27:45
Java开发中静态变量和实例变量的区别是什么?
Java开发中静态变量和实例变量的区别是什么?在语法定义上的区别:静态变量前要加 static 关键字,而实例变 量前则不加。
7962
2019-05-24 14:16:01
Java面试常见关于多线程的面试题
多线程是Java技术中常用而且相对比较难易理解的一个知识点。而且多线程也是企业实际应用中必备的技术,因此在面试的过程中,面试者经常被问到关于多线程的问题,遇到这些问题大家应该怎么办呢?赶紧恶补一下Java面试常见关于多线程的面试题吧。
6593
2019-09-04 18:50:46
SpringMVC快速入门学习笔记
今天我们来分享一篇SpringMVC快速入门的学习笔记,主要内容包括SpringMVC简介、开发步骤、代码实现和SpringMVC流程。对SpringMVC有兴趣的同学就接着看下去吧~
4314
2020-04-20 19:25:30
Spring Cloud Alibaba实战项目教程哪有?
Spring Cloud Alibaba实战项目教程哪有?博学谷Spring Cloud Alibaba微服务架构电商项目实战教程详细讲解 Spring Cloud Alibaba 核心技术,包括:Nacos、Sentinel、Dubbo、Seata、RocketMQ以及 Feign、Gateway、OAuth2、Skywalking、Docker 等其他必备主流技术。
7656
2020-06-16 11:29:44