您的位置:首页 > 其它

JUnit学习(一) - 基础学习和介绍

2016-12-16 18:06 225 查看
本文借鉴和学习了这篇博客,若有错误烦请指出。

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的生命周期。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: