junit4测试学习

JUnit 4 使用 Java 5 中的注解(annotation),以下是JUnit 4 常用的几个 annotation 介绍

@Before:初始化方法

@After:释放资源

@Test:测试方法,在这里可以测试期望异常和超时时间

@Ignore:忽略的测试方法

@BeforeClass:针对所有测试,只执行一次,且必须为static void

@AfterClass:针对所有测试,只执行一次,且必须为static void

一个JUnit 4 的单元测试用例执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的调用顺序为:

@Before –> @Test –> @After

写个例子测试一下,测试一下

import static org.junit.Assert.*;

import org.junit.After;

import org.junit.AfterClass;

import org.junit.Before;

import org.junit.BeforeClass;

import org.junit.Ignore;

import org.junit.Test;

public class JUnit4Test {

@Before

public void before() {

System.out.println("@Before");

}

@Test

public void test() {

System.out.println("@Test");

assertEquals(5 + 5, 10);

}

@Ignore

@Test

public void testIgnore() {

System.out.println("@Ignore");

}

@Test(timeout = 50)

public void testTimeout() {

System.out.println("@Test(timeout = 50)");

assertEquals(5 + 5, 10);

}

@Test(expected = ArithmeticException.class)

public void testExpected() {

System.out.println("@Test(expected = Exception.class)");

throw new ArithmeticException();

}

@After

public void after() {

System.out.println("@After");

}

@BeforeClass

public static void beforeClass() {

System.out.println("@BeforeClass");

};

@AfterClass

public static void afterClass() {

System.out.println("@AfterClass");

};

};

输出结果

@BeforeClass

@Before

@Test(timeout = 50)

@After

@Before

@Test(expected = Exception.class)

@After

@Before

@Test

@After

@AfterClass

@BeforeClass and @AfterClass                     @Before and @After

在一个类中只可以出现一次                                  在一个类中可以出现多次,即可以在多个方法的声明前加上这两个                                                                                          Annotaion标签,执行顺序不确定

方法名不做限制                                                   方法名不做限制

在类中只运行一次                                                在每个测试方法之前或者之后都会运行一次

@BeforeClass父类中标识了该Annotation的        @Before父类中标识了该Annotation的方法将会先于当前类中标识了该

方法将会先于当前类中标识了该Annotation的       Annotation的方法执行。

方法执行。

@AfterClass 父类中标识了该Annotation的          @After父类中标识了该Annotation的方法将会在当前类中标识了该

方法将会在当前类中标识了该Annotation的           Annotation的方法之后执行

方法之后执行

必须声明为public static                                        必须声明为public 并且非static

所有标识为@AfterClass的方法都一定会被执行      所有标识为@After 的方法都一定会被执行,即使在标识为

,即使在标识为@BeforeClass的方法抛出异常       @Before 或者 @Test 的方法抛出异常的的情况下也一样会。

的的情况下也一样会。

@BeforeClass 和 @AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择。

时间: 2024-12-18 12:18:47

junit4测试学习的相关文章

phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识

16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错,虽然一和二可以结合在一起,内容并不多 且给新手更容易带来学习信心:安装建议参照我的另一篇安装博客,因为当时我是按照这种方式失败的,文中提及网 络原因导致失败,我当时显示的是安装的某个路径似乎没有维护了,那个url已经不存 在了(所以我也不知道是网络原因还是真的那个路径不存在了)(PHP教程:PHP

phpunit测试学习 2 分类总结断言涉及哪些方面

11:27 2015/12/9phpunit测试学习 2,  分类总结断言涉及哪些方面先推荐windows快速打开某处路径下的cmd,进入测试状态:可以在文件夹中,按住Shift+鼠标右键,这时候你就会看到下面的图片.然后点击在 此处打开命令行窗口就行了参照:http://www.jb51.net/os/windows/111622.html常规打开cmd进入目录太麻烦太慢了. 基本(assertNotEquals): 真假 是否为空 相等不等 大小等于 类型相同类(assertClassHas

通过测试学习BGP

测试编号 BGP-2-1-1 测试项目 BGP连接建立功能测试 测试依据 RFC1771 测试目的 保证DUT收到bgp建立连接请求后建立bgp连接功能测试 测试配置 测试组网 SW1---------------DUT-----------------SW2 VLAN10      VLAN20 SW1上配置: VLAN 10:10.0.0.2/24 LOOPBACK 1:1.1.1.1/32 DUT上配置: VLAN 10:10.0.0.1/24 VLAN 20:20.0.0.1/24 LO

web项目中 集合Spring&使用junit4测试Spring

web项目中 集合Spring 问题: 如果将 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloService helloService = (HelloService) applicationContext.getBean("helloService"); helloService.sayHello(

使用junit4测试spring项目中service方法

使用junit4测试项目中service方法 1 import java.util.HashMap; 2 import java.util.List; 3 import java.util.Map; 4 5 import javax.annotation.Resource; 6 7 import org.junit.Test; 8 import org.junit.runner.RunWith; 9 import org.springframework.test.context.ContextC

用python进行微信公众号开发(仅测试学习)

今天看到篇教程,是用python开发微信公众号的,觉得有意思,就敲代码实现了一下,成功后更觉得好玩,故记录,方便开发深入时使用. 基础背景介绍: 首先得有个人微信号(没有自行注册),为方便测试学习: 其次,还要注册微信公众号,微信公众号不止一种,是分多种的,具体详情见官方说明,但仅测试学习时可先不注册公众号,(需要用个人微信号扫描登陆测试公众平台)利用微信提供的测试平台接口即可: 微信公众号说明:http://kf.qq.com/faq/120911VrYVrA130805byM32u.html

Web安全测试学习手册-业务逻辑测试

Web安全测试学习手册-业务逻辑测试 首先感谢朋友倾璇的邀请 http://payloads.online/archivers/2018-03-21/1 ,参与了<web安全测试学习手册>的相关撰写,目前负责业务逻辑测试这一块的撰写,目前初步已经成型,先发出来让大家看看,欢迎点评,也可以加入我们一起来撰写~ 业务逻辑测试 介绍:这里对Web应用业务逻辑方面的安全缺陷进行介绍和常见案例讲解. 任意用户密码重置 常见的缺陷 * 1.验证码类缺陷 -场景: 1.1 验证码回显在客户端(响应主体.Se

Junit4 IDEA测试学习一

1.Junit4 下载 https://github.com/junit-team/junit4/releases 2.IDEA Test的创建 创建一个和src同级别的文件夹叫test(逻辑代码放src里,测试代码放test里是个好习惯). 接着在IntelliJ IDEA里还要把这个test文件夹要设置成测试文件的根目录,右键选中 Mark Directory As - Test Sources Root. 3.intellij idea 自动生成test单元测试 在要测试的类上按快捷键ct

JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试

Spring框架学习路线 Spring的IOC Spring的AOP,AspectJ Spring的事务管理,三大框架的整合 Spring框架概述 什么是Spring? Spring是分层的JavaSE/EE full-stack(一站式)轻量级开源框架. 所谓分层: SUN提供的EE的三层结构:web层.业务层.数据访问层(也称持久层,集成层). Struts2是web层基于MVC设计模式框架. Hibernate是持久的一个ORM的框架. 所谓一站式:Spring框架有对三层的每层解决方案.