Junit 概念,原理这里就不说了,有兴趣的朋友可以查阅相关资料,这篇文章主要是为了快速给大家介绍一下junit4的使用 以及与 junit3的区别,这里默认大家对junit3已经有些理解了。
下面就开始吧:
1.先写个简单的被测试类:
package test.junit;
public class BaseClass {
public String method() {
return this.getClass().getName();
}
}
2.对于这个类的unit测试,我们先看看在junit3中怎么进行测试的吧:
package test.junit;
import junit.framework.TestCase;//引入TestCase类
public class BaseClassTest extends TestCase {//类必须继承TestCase
BaseClass baseClass;
protected void setUp() throws Exception {
super.setUp();
baseClass = new BaseClass();
}
public void testMethod (){//测试方法必须以test开头
//通过assert*来检验
assertTrue(baseClass.method ().equals("test.junit.BaseClass"));
}
}
通过上面这个类,我们对junit3进行一些总结:
1. 必须引入类TestCase(import junit.framework.TestCase;),
2. 必须继承类TestCase (class BaseClassTest extends TestCase)
3. 测试方法必须以test开头(public void testMethod ())
4. 通过assert*方法来判断结果(assertTrue(baseClass.method ().equals("test.junit.BaseClass"));)。
3. 下面来了解一下junit4里面的内部关系吧,从这个图中你可以看出junit4的主要功能:
下面来看看我们今天的主角junit4是怎么处理这些的吧:
package test.junit;
import org.junit.Test;//引入Test类
import static org.junit.Assert.*;//引入Assert.*包
public class BaseClassTestNew {//这里不用再继承TestCase类了。
BaseClass baseClass = new BaseClass();
@Test public void methodOne(){//名字随便写,可以按你自己的爱好。但是必须以@Test开头
//还是以assert*来判断
assertTrue(baseClass.methodOne().equals("test.junit.BaseClass"));
}
}
看看多么的简洁,好像少了很多约束,下面通过和junit3的特性进行比较总结junit4的特性:
1.必须引入类TestCase(import junit.framework.TestCase;
è必须引入类Test(import org.junit.Test;),必须引入类(import static org.junit.Assert.*;)
2.必须继承类TestCase (class BaseClassTest extends TestCase)
è不需要
3.测试方法必须以test开头(public void testMethod ())
è不需要,但是类开始的时候要标记 @Test
4.通过assert*方法来判断结果(assertTrue(baseClass.method ().equals("test.junit.BaseClass"));)。
从上面的对比,可以看出junit4与junit3的区别在于:
去掉与类TestCase的偶联性,唯一触发TestCase的地方就是在@Test上。
4.以上就是junit4与junit3的区别与改进,下面再继续看看junit4有哪些新增加的功能吧:
1. @Before 和 @After
类似于init() 和destory(),可以将一些初始化和释放工作放到这里面,每个类都只有一个@Before 和 @After。为了实现这个功能,我们将测试类修改如下:
import org.junit.Test;
//新增加两个类
import org.junit.Before;
import org.junit.After;
import static org.junit.Assert.*;
public class BaseClassTestNew {
BaseClass baseClass ; //这里不用进行初始化
@Before public void runBeforeTest(){
baseClass = new BaseClass();
}
@Test public void method (){
assertTrue(baseClass.method ().equals("test.junit.BaseClass"));
}
@After public void runAfterTest(){
baseClass.teardownList();
baseClass = null;
}
}
@Before 方法会在 @Test 之前进行,相反 @After 会在所有方法运行完进行。
Junit4同时还支持 @BeforeClass 和 @AfterClass,原理一样,大家可以参考相关资料。
2.TimeOut 属性
Junit4支持timeout,运用如下:
a. 首先在被测试类中增加用于测试timeout的方法:
public void methodTimeOut() {
try {
Thread.sleep(50);//睡50秒
System.out.println("methodTimeOut");
} catch (InterruptedException e) {
}
}
b.看看怎么测试这个方法:
@Test(timeout=5)
public void methodTimeOut(){
baseClass.methodTimeOut();
}
1. 增加(timeout=5)这个设置项
2. 运行完 没有输出methodTimeOut,说明这个方法没有执行完,达到效果。
以上就是一部分junit4相关的东西,这里只是简单的入门,希望大家增加补充其他内容。
分享到:
相关推荐
junit4 快速入门 比较简单易学,欢迎前来学习
Junit实例图解,描述Junit安装环境,实用例子
Junit4入门使用介绍,作为入门的一个好材料。帮助快速进入Junit世界。
JUnit 是Java 开源测试工具,最新版本的Eclipse 已经全面集成了JUnit4。本文用图示的方法,通过实例示范,一步一步地介绍如何在Eclispe 集成开发环境中使用JUnit。...本文共15页,适合作为JUnit初学者的快速入门教材。
测试驱动开发With Junit 第一章 前言 2 第二章 JUnit快速入门 2 第三章 JUnit测试套件 7
Log4j 是一个使用 Java 语言编写的,可靠、快速、灵活的日志框架(API),使用 Apache Software License授权。Log4j 是一个使用 Java 语言编写的流行类库,它被移植到 C、C++、C#、Perl、Python、Ruby 和 Eiffel ...
selenium入门数据,测试人员必备
Spring MVC 教程 快速入门 深入分析 目录 一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置...
Java 8 + JUnit 5快速入门Maven原型 概括 该项目是Java 8和JUnit 5的Maven原型 先决条件 JDK 8 Maven的3 在本地安装原型 要将原型安装在本地存储库中,请执行以下命令: git clone ...
repobee-junit4 ,一个用于的JUnit4测试运行器插件 repobee-junit4 v1.0.0需要RepoBee 3:从1.0版开始,repobee-junit4仅与RepoBee 3+兼容。... $ repobee plugin install入门开始使用repobee-junit4的最佳方法
Java 11 + JUnit 5 快速入门 Maven 原型 Maven 原型,用于创建为 Java 11 配置并使用 JUnit 5 的项目。 在本地存储库中安装原型 在本地克隆存储库后。 只需运行下面的 maven 命令来安装原型。 mvn install 使用原型...
入门 该项目是插件。 要开始使用fastlane-plugin-merge_junit_report ,请运行以下fastlane-plugin-merge_junit_report将其添加到您的项目中: fastlane add_plugin merge_junit_report 关于merge_junit_report ...
快速入门 Factory模式 IOC模式 AOP模式 演练Spring的威力 第三部分:介绍日志管理利器(Log4j) 快速入门 演练Log4j的优越性 第四部分:介绍UI层利器(Struts) Struts介绍 快速入门 ActionFrom Action 客户端验证 ...
Android Studio单元测试快速入门
WSDeviceFarmSample用于AWS设备场示例的Junit测试快速入门其中应用程序目录包含要测试的apk
1、Spring简介及快速入门 2、Spring配置文件及其相应API 3、Spring注解开发 4、Spring web环境及其Junit的集成 5、Spring JDBCTemplate的基本使用 6、Spring AOP的介绍及其配置使用 7、Spring的声明式事务控制 8、...
全书共分14章,内容涵盖了Spring的基础概念、核心容器、Spring AOP、事务处理、持久层封装、Web框架、定时器、Spring和Struts、Spring和Hibernate、Spring和Ant、Spring和Junit。本书适用于...
spring mvc 核心类与接口 spring mvc 核心流程图 spring mvc DispatcherServlet说明 spring mvc 双亲上下文的说明 springMVC-mvc.xml 配置文件片段讲解 ...如何给spring3 MVC中的Action做JUnit单元测试?
heaven 依赖快速开始项目依赖jdk1.8 及其以上版本 及其以上版本maven 导入<dependency> <groupId>com.github.houbb</groupId> <artifactId>junitperf</artifactId> <version>2.0.7</version></dependency>入门...
#TDD练习代码库该项目是一个空代码堆栈,用于快速入门TDD编码