关闭

Junit 实例精讲基础教程(一) 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass

标签: junitmaven单元测试框架
6280人阅读 评论(0) 收藏 举报
分类:

Junit官网:http://junit.org/junit4/

关于Junit,官文甚至不做过多解释:Junit只是一个用于单元测试的小框架,是基于xUnit架构的一个实现。

更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217

系列教程基于Maven。

1. 引入Junit依赖

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

贴士:Junit捆绑了一个hamcrest-core的类库,查看依赖树可以看到:

dependency:tree
...
[INFO] \- junit:junit:jar:4.12:test
[INFO]    \- org.hamcrest:hamcrest-core:jar:1.3:test

如果你要使用hamcrest-core的其他版本,可以过滤掉hamcrest-core:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.hamcrest</groupId>
                    <artifactId>hamcrest-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- This will get hamcrest-core automatically 
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <version>1.3</version>
            <scope>test</scope>
        </dependency>  -->
        <!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-library -->
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
        <version>1.4-atlassian-1</version>
    </dependency>

</dependencies>

2. Junit中的基本注解

Junit中集中基本注解,是必须掌握的。

  • @BeforeClass – 表示在类中的任意public static void方法执行之前执行
  • @AfterClass – 表示在类中的任意public static void方法执行之后执行
  • @Before – 表示在任意使用@Test注解标注的public void方法执行之前执行
  • @After – 表示在任意使用@Test注解标注的public void方法执行之后执行
  • @Test – 使用该注解标注的public void方法会表示为一个测试方法

使用示例:
BasicAnnotationTest.java:

package org.byron4j.spring_mvc_log4j;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class BasicAnnotationTest {
    // Run once, e.g. Database connection, connection pool
    @BeforeClass
    public static void runOnceBeforeClass() {
        System.out.println("@BeforeClass - runOnceBeforeClass");
    }

    // Run once, e.g close connection, cleanup
    @AfterClass
    public static void runOnceAfterClass() {
        System.out.println("@AfterClass - runOnceAfterClass");
    }

    // Should rename to @BeforeTestMethod
    // e.g. Creating an similar object and share for all @Test
    @Before
    public void runBeforeTestMethod() {
        System.out.println("@Before - runBeforeTestMethod");
    }

    // Should rename to @AfterTestMethod
    @After
    public void runAfterTestMethod() {
        System.out.println("@After - runAfterTestMethod");
    }

    @Test
    public void test_method_1() {
        System.out.println("@Test - test_method_1");
    }

    @Test
    public void test_method_2() {
        System.out.println("@Test - test_method_2");
    }
}

输出:

@BeforeClass - runOnceBeforeClass
@Before - runBeforeTestMethod
@Test - test_method_1
@After - runAfterTestMethod
@Before - runBeforeTestMethod
@Test - test_method_2
@After - runAfterTestMethod
@AfterClass - runOnceAfterClass
3
0
查看评论

junit中before和beforeclass区别

@before 在每个测试方法之前都会运行一次,只需声明成public @beforeclass 在类中只运行一次,必须声明成public static
  • dongfengkuayue
  • dongfengkuayue
  • 2015-11-10 09:31
  • 1468

JUnit单元测试举例(@Test,@Before,@After,@beforeClass,@afterClass,assertEquals,assertTrue等)

需要测试的类Person: package cn.edu.lstc.junit; public class Person { public void run() { System.out.println("run..."); } public void eat...
  • u012110719
  • u012110719
  • 2015-04-04 08:37
  • 1690

JUnit4及其在IDEA中的使用

在idea中使用JUnit 一、环境配置      使用idea IDE 进行单元测试,首先需要安装JUnit 插件。 1.安装JUnit插件步骤               File-->...
  • u014102846
  • u014102846
  • 2016-11-03 11:26
  • 9347

JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation:  @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次) @After:释放资源 ...
  • Anders_Zhuo
  • Anders_Zhuo
  • 2013-05-21 14:35
  • 40170

junit4学习笔记

太久没有用junit写测试了,前几天被一个面试官问的自己很傻,所以特意在此重新学习和总结一下使用junit做测试目的是尽量早的发现程序的bug,一个bug被隐藏的时间越长,修复这个bug的代价就越大。Junit简介:    Junit最初是由Erich Gamma 和 ...
  • afeilxc
  • afeilxc
  • 2011-03-02 18:36
  • 31410

JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@AfterClass、@Ignore

JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍: @BeforeClass:针对所有测试,只执行一次,且必须为static void @Before:初始化方法 @Test:测试方法,在这里可以测试期望异常和
  • xwfaoi
  • xwfaoi
  • 2011-08-26 14:16
  • 2984

自定义java注解(三) 实现Junit中的@Test、@Before、@After

前面两次的自定义注解,都只是解析了一个注解,今天要讲的junit需要三个注解,而且解析框架中反射激活方法时要根据Before、Test、After的顺序来执行,需要注意的是Test注解可能会有多个,所以我们在外面定义一个数组,用来存储所有由@Test标注的方法。下面来看一下具体实现 三个注解的定义 ...
  • emilyRR
  • emilyRR
  • 2015-08-08 11:33
  • 9518

Spring AOP @Before @Around @After 等 advice 的执行顺序

Spring AOP 中 @Before @Around @After 等 advice 的执行顺序用过spring框架进行开发的人,多多少少会使用过它的AOP功能,都知道有@Before、@Around和@After等advice。最近,为了实现项目中的输出日志和权限控制这两个需求,我也使用到了A...
  • rainbow702
  • rainbow702
  • 2016-08-11 19:37
  • 22183

TestNG入门——注解之Before/After

注解是java 5新增的功能,可使用于类,方法,变量,testNG包提供的注解功能请见下表 1、@BeforeSuite or @AfterSuite  被注解的方法,将在整个测试套件之前 or 之后执行。 2、@BeforeTest or @AfterTest 被注解的方法,将在某个用例...
  • haiweizhourong
  • haiweizhourong
  • 2017-02-08 14:33
  • 1435

SpringAOP实例之简单实现(Annotation形式)

Spring除了支持Schema方式配置AOP,还支持注解方式:使用@AspectJ风格的切面声明。    1  启用对@AspectJ的支持        Spring默认不支持@AspectJ风格的切面...
  • zmx729618
  • zmx729618
  • 2016-04-21 10:26
  • 5070
    个人资料
    • 访问:308603次
    • 积分:4294
    • 等级:
    • 排名:第8414名
    • 原创:125篇
    • 转载:23篇
    • 译文:29篇
    • 评论:30条
    更多精彩
    博客专栏
    最新评论