`

Junit4测试总结

阅读更多
Junit4的注解有如下8个:
1.@BeforeClass 测试类最开始执行的方法,并且只执行一次
2.@AfterClass 测试类最后执行的方法,并且只执行一次
3.@Before 每个测试方法都会在执行之前调用一次的方法
4.@After 每个测试方法都会在执行之后调用一次的方法
    以上四个注解修饰的方法均需要抛出Exception异常
5.@Ignore 暂时不执行的测试,下面这个方法在测试类执行时不会被调用
6.@Test 普通测试
7.@Test(timeout=long) 超时测试
8.@Test(expected=Exception) 预期异常的测试,该注解修饰的方法抛出预期的异常则为正确的,反之则会报Errors

断言方法:junit4提供了多个方法名为assertEquals的重载方法,查api即可。

下面提供示例程序:

被测试的类为Main,测试类为MainTest
package com.jison;

/**
 * 被测试的类
 * @author jison
 *
 */
public class Main {
	
	/**
	 * 计算n的阶乘
	 * @param n
	 * @return
	 */
	public int factorial(int n){
		int factorialNum = 1;
		for (int i = 1; i < n+1; i++) {
			factorialNum = factorialNum * i;
		}
		return factorialNum;
	}
	
	/**
	 * 计算n的阶乘
	 * @param n
	 * @param type 值为false时让程序报空指针
	 * @return
	 * @throws Exception 
	 */
	public int factorial(int n, boolean type) throws NullPointerException{
		if(!type){
			throw new NullPointerException(){};
		}
		return factorial(n);
	}
}



package junit4;

import static org.junit.Assert.assertEquals;

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

import com.jison.Main;

/**
 * 测试类
 * @author jison
 *
 */
public class MainTest {

	/**
	 * 测试类最开始执行的方法,并且只执行一次
	 * @throws Exception
	 */
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		System.out.println("setUpbeforeClass");
	}

	/**
	 * 测试类最后执行的方法,并且只执行一次
	 * @throws Exception
	 */
	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		System.out.println("tearDownAfterClass");
	}

	/**
	 * 每个测试方法都会在执行之前调用一次的方法
	 */
	@Before
	public void setUp() throws Exception {
		System.out.println("setUp");
	}

	/**
	 * 每个测试方法都会在执行之后调用一次的方法
	 * @throws Exception
	 */
	@After
	public void tearDown() throws Exception {
		System.out.println("tearDown");
	}

	/**
	 * 普通测试
	 */
	@Test
	public void testFactorial() {
		// 断言方法
		assertEquals(120, new Main().factorial(5));
	}
	
	/**
	 * 超时测试
	 * 会报Errors
	 */
	@Test(timeout=1)
	public void testFactorial2(){
		// 通过循环Long类型的最大值模拟超时的程序
		for (int i = 0; i < Long.MAX_VALUE; i++) {}
		assertEquals(3628800, new Main().factorial(10));
	}

	/**
	 * 测试到预期的异常
	 */
	@Test(expected=NullPointerException.class)
	public void testFactorial3() throws NullPointerException{
		// 参数true不报异常,false报异常
		assertEquals(120, new Main().factorial(5, false));
	}
	/**
	 * 没有测试到预期的异常,报Failures
	 */
	@Test(expected=NullPointerException.class)
	public void testFactorial31() throws NullPointerException{
		// 参数true不报异常,false报异常
		assertEquals(120, new Main().factorial(5, true));
	}
	/**
	 * 本应该通过测试到预期的异常,但是catch处理后则报Failures
	 */
	@Test(expected=NullPointerException.class)
	public void testFactorial32(){
		// 参数true不报异常,false报异常
		try{
			assertEquals(120, new Main().factorial(5, false));
		} catch(NullPointerException e){
			System.out.println("以下是预期的异常信息:");
			e.printStackTrace();
		}
		
	}
	
	/**
	 * 暂时不执行的测试
	 * 下面这个方法在测试类执行时不会被调用
	 */
	@Ignore
	public void testFactorial4(){
		System.out.println("Ignore");
	}
}

1
0
分享到:
评论

相关推荐

    junit 单元测试 实验 报告 大全

    使用JUnit 对下列选择排序法进行测试。 public void select_sort (int a[]) { 1 int i, j, k, t, n; 2 n = a.length; 3 for (i = 0; i ; i++) { 4 k = i; 5 for (j = i + 1; j ; j++) { 6 if (a [j] [k...

    单元测试利器JUnit4

    本文内容包括:引言JUnit4初体验JUnit深入JUnit和Ant总结本文主要介绍了如何使用JUnit4提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用Ant执行自动化的单元测试。本文假设读者对Eclipse下进行Java...

    junit 单元测试

    junit使用总结的资料,很适合想了解与使用junit的学习者 version: junit 4与jdk 1.5或以上版本.

    Junit4Demo:Junit4 演示

    junit4 使用总结 @Test @Test(timeout=毫秒),@Test(expected=异常类) @Ignore @RunWith @BeforeCalss @AfterClass @Before @After 测试套件@RunWith(Suite.class) 参数化设置@RunWith(Parameterized.class)

    SpringBoot实战:整合jUnit测试框架

    开发项目单元测试必不可少,而jUnit也是java中非常优秀的测试框架,现在简单实战总结一下SpringBoot如何整合jUnit测试框架。 二、添加依赖 在SpringBoot中使用jUnit单元测试前,需要先添加如下maven依赖,其中 test ...

    使用JUnit对规则进行单元测试

    火龙果软件工程技术中心 本文内容包括:引言编写Mock类将测试数据保存到配置文件中编写SettersMap类编写可复用的TestCase类用TestSuite组织测试用例总结下载参考资料“规则”(Rule)在程序中有广泛的应用,本文将...

    selenium测试总结

    一直做开发,很少关注测试工具,尤其是以往的测试都主要是Junit测试,难免在web层面上因没有严格测试而经常出现bug,近来小小接触了一下这一类的测试工具,感觉蛮好玩的,在此和大家分享一下,希望多多交流

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    分析JUnit框架源代码

    本文内容包括:概述Junit简介一个简单的JUnit程序实例JUnit源代码分析总结参考资料本文细致地描述了JUnit的代码实现,在展示代码流程UML图的基础上,详细分析JUnit的内部实现代码的功能与机制,并在涉及相关设计模式...

    java编程之单元测试(Junit)实例分析(附实例源码)

    主要介绍了java编程之单元测试(Junit),结合实例形式较为详细的分析总结了Java单元测试的原理、步骤及相关注意事项,并附带了完整代码供读者下载参考,需要的朋友可以参考下

    jmeter测试总结

    利用jmeter工具里的junit,java,http方式进行性能测试

    开发一个基于JUnit的存储过程自动化测试的Eclipse插件

    13总结14资源列表参考资料本文将以一个真实的项目为背景,从分析过去存储过程的测试方法中存在的问题入手,逐步阐述我们分析问题,寻找问题根源和寻求解决办法的过程,介绍我们开发这个基于JUnit的存储过程自动化...

    单元测试报告模板

    【被测的代码类】 【代码级别】 【Junit测试类1】 【意图描述】 【P/F】 【Junit测试类2】 功能测试分析 边界测试分析 覆盖率分析 目标类 级别 方法覆盖率 行覆盖率 备注 【被测的代码类】 【代码级别...

    Android单元测试之–没有JDK而如何运行JUnit

    因此,我在这里对此内容做一下梳理和总结:在Java下做单元测试必然用到JUnit。这里说的JUnit是指从Apache基金会下载的junit.jar里提供的一系列单元测试功能。这些功能显然是运行在JDK之上的。在Andr

    软件测试面试题总结

    java程序员面试宝典、java程序员的基本修养、大话设计模式只看了重要的 )、测试相关(软件测试的艺术、从菜鸟到测试架构师、软件测试技术大全、selenium,qtp,junit的一些相关资料和书)、linux看了一点(鸟哥的...

Global site tag (gtag.js) - Google Analytics