JUnit学习(一) - 基础学习和介绍
2016-12-16 18:06
225 查看
本文借鉴和学习了这篇博客,若有错误烦请指出。
JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。它包括以下特性:
用于测试期望结果的断言(Assertion)
用于共享共同测试数据的测试工具
用于方便的组织和运行测试的测试套件
图形和文本的测试运行器
安装JUnit插件步骤:File-->settings-->Plguins-->Browse repositories-->输入JUnit-->选择JUnit Generator V2.0安装。
使用JUnit插件:在需要进行单元测试的类中,使用快捷键alt+insert,选择JUnit test,选择JUnit4。
@Test标签:标注测试方法。注意:测试方法必须是public void,即公共的、无返回数据的、可抛出异常的。
@BeforeClass注解:修饰static的方法,在整个类执行之前执行该方法一次。比如你的测试用例执行前需要一些高开销的资源(连接数据库)可以用@BeforeClass搞定。值得注意的是如果测试用例类的父类中也存在@BeforeClass修饰的方法,它将在子类的@BeforeClass之前执行。
@AfterClass:同样修饰static的方法,在整个类执行结束前执行一次,用于处理一些测试后续工作,例如清理数据,恢复现场。如果你用@BeforeClass创建了一些资源现在是时候释放它们了。
@Before:修饰public void的方法,在每个测试用例(方法)执行时都会执行。
注意:@Before与@BeforeClass的区别在于,@Before不止运行一次,它会在每个用例运行之前都运行一次。主要用于一些独立于用例之间的准备工作。比如两个用例都需要读取数据库里的用户A信息,但第一个用例会删除这个用户A,而第二个用例需要修改用户A。那么可以用@BeforeClass创建数据库连接。用@Before来插入一条用户A信息
@After:修饰public void的方法,在每个测试用例执行结束后执行。与@Before是对应的。
Constructor:每个测试用例都会重新创建当前的Class实例,可以看到Constructor执行了两次。
关于以上注解的一个实例:
public class LifeCycleTest {
public LifeCycleTest()
{
super();
System.out.println("<<Person Constructor>>");
}
@BeforeClass
public static void beforeClassM()
{
System.out.println("<<Before Class>>");
}
@Before
public void beforeM()
{
System.out.println("<<Before>>");
}
@AfterClass
public static void afterClassM()
{
System.out.println("<<After Class>>");
}
@After
public void after()
{
System.out.println("<<After>>");
}
@Test
public void testMethod1()
{
System.out.println("Test Method 1.");
}
@Test
public void testMethod2()
{
System.out.println("Test Method 2.");
}
}
返回结果:
以上代码也反映出了JUnit的生命周期。
JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。它包括以下特性:
用于测试期望结果的断言(Assertion)
用于共享共同测试数据的测试工具
用于方便的组织和运行测试的测试套件
图形和文本的测试运行器
一.单元测试的基本使用
1.环境配置(idea配置JUnit)
使用idea IDE 进行单元测试,首先需要安装JUnit 插件。安装JUnit插件步骤:File-->settings-->Plguins-->Browse repositories-->输入JUnit-->选择JUnit Generator V2.0安装。
使用JUnit插件:在需要进行单元测试的类中,使用快捷键alt+insert,选择JUnit test,选择JUnit4。
2.新建包和测试类
在测试方法前加上注释@Test,会自动导入org.junit.Test,若此时@Test 仍为红色显示有错,alt + Enter,自动修复,idea自动导入所需的JUnit类库
二.JUnit常用的注解和标签
@Test标签:标注测试方法。注意:测试方法必须是public void,即公共的、无返回数据的、可抛出异常的。@BeforeClass注解:修饰static的方法,在整个类执行之前执行该方法一次。比如你的测试用例执行前需要一些高开销的资源(连接数据库)可以用@BeforeClass搞定。值得注意的是如果测试用例类的父类中也存在@BeforeClass修饰的方法,它将在子类的@BeforeClass之前执行。
@AfterClass:同样修饰static的方法,在整个类执行结束前执行一次,用于处理一些测试后续工作,例如清理数据,恢复现场。如果你用@BeforeClass创建了一些资源现在是时候释放它们了。
@Before:修饰public void的方法,在每个测试用例(方法)执行时都会执行。
注意:@Before与@BeforeClass的区别在于,@Before不止运行一次,它会在每个用例运行之前都运行一次。主要用于一些独立于用例之间的准备工作。比如两个用例都需要读取数据库里的用户A信息,但第一个用例会删除这个用户A,而第二个用例需要修改用户A。那么可以用@BeforeClass创建数据库连接。用@Before来插入一条用户A信息
@After:修饰public void的方法,在每个测试用例执行结束后执行。与@Before是对应的。
Constructor:每个测试用例都会重新创建当前的Class实例,可以看到Constructor执行了两次。
关于以上注解的一个实例:
public class LifeCycleTest {
public LifeCycleTest()
{
super();
System.out.println("<<Person Constructor>>");
}
@BeforeClass
public static void beforeClassM()
{
System.out.println("<<Before Class>>");
}
@Before
public void beforeM()
{
System.out.println("<<Before>>");
}
@AfterClass
public static void afterClassM()
{
System.out.println("<<After Class>>");
}
@After
public void after()
{
System.out.println("<<After>>");
}
@Test
public void testMethod1()
{
System.out.println("Test Method 1.");
}
@Test
public void testMethod2()
{
System.out.println("Test Method 2.");
}
}
返回结果:
以上代码也反映出了JUnit的生命周期。
相关文章推荐
- SQL的详细语法介绍——对于学习最基础知识一
- 通信基础学习之通信基础知识介绍
- 详细介绍Linux shell脚本基础学习
- SQL的详细语法介绍——对于学习数据库最基础知识一
- 详细介绍Linux shell脚本基础学习(三)
- AJAX学习基础:简单介绍数据岛使用方法
- SQL的详细语法介绍——对于学习数据库最基础知识[转]
- 详细介绍Linux shell脚本基础学习
- undo系列学习之undo入门基础知识介绍
- 学习C语言1_程序编译、Main函数、基础介绍
- Java学习笔记(一) Java基础以及数据类型介绍
- 详细介绍Linux shell脚本基础学习(六)
- 零基础学习COM之COM库和类厂介绍
- MVC学习笔记之入门篇(二)mvc3相关介绍以及基础知识篇
- SQL的详细语法介绍——对于学习数据库最基础知识一
- 详细介绍Linux shell脚本基础学习(四)
- 【linux基础学习】默认的目录介绍
- 详细介绍Linux shell脚本基础学习(一)
- SQL的详细语法介绍——对于学习数据库最基础知识二
- 详细介绍Linux shell脚本基础学习(一)