`

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
分享到:
评论

相关推荐

    Junit4单元测试入门例子

    总结,Junit4使得Java的单元测试变得简单而直观。通过注解,我们可以快速定义测试方法,结合断言库进行结果验证,确保代码质量。在本例中,我们学会了如何为Calculate类的加减乘除方法编写有效的单元测试,为后续的...

    Junit 单元测试完整案例

    总结,Junit单元测试对于确保代码的正确性和可维护性至关重要。Spring和Struts框架的测试涉及到特定的策略和工具,理解并熟练运用这些知识,可以提升开发效率,降低维护成本。通过深入学习本案例,你将能够自信地对...

    junit4单元测试

    总结一下,JUnit4是一个强大的单元测试框架,它的注解驱动使得测试代码更简洁,断言机制便于检查代码行为,参数化测试、异常测试、分类和分组等功能则提高了测试的灵活性和覆盖率。通过合理使用JUnit4,开发者能够...

    Junit4测试用例示例

    总结起来,Junit4是Java开发中的强大工具,通过注解、断言和各种测试策略,能有效地保证代码的质量和稳定性。熟悉和掌握Junit4的使用,对于提升开发效率和代码质量至关重要。在实际项目中,你可以根据需求灵活运用...

    junit4 jar包

    在Java项目中,将这两个jar包添加到类路径后,开发者就可以编写JUnit测试了。测试类通常会继承自`org.junit.Test`,并包含一系列的测试方法。测试运行器(如JVM内置的`JUnitCore`或IDE集成的测试运行器)会发现这些...

    junit4学习文档

    JUnit4 是 JUnit 测试框架的一个重大更新版本,它充分利用了 Java 5 的注解(Annotation)特性来简化测试用例的编写过程。注解是一种元数据,用于描述程序中的元素如类、方法或变量的作用。与传统的关键字(如 ...

    junit单元测试示例

    在这个“junit单元测试示例”中,我们将深入探讨如何配置和执行一个基本的JUnit测试。 首先,我们需要了解Junit.jar。这是JUnit库的归档文件,包含了所有必要的类和接口,使得我们能够编写和运行测试用例。要将...

    junit单元测试junit单元测试junit单元测试

    总结来说,JUnit是Java开发中的关键工具,它简化了单元测试的编写和执行,帮助开发者发现和修复代码中的问题,从而提高软件质量。在进行单元测试时,应遵循最佳实践,确保测试的独立性、可读性和全面性,这样才能...

    Junit 计算器测试

    总结来说,"Junit计算器测试"是一个很好的实践项目,它可以帮助初学者理解Junit的基本用法,包括创建测试类、编写测试方法、使用断言以及理解测试生命周期。通过这样的练习,开发者可以逐步掌握单元测试的精髓,提高...

    JUnit 4测试驱动开发----junit技术讲解

    JUnit 4 是一款广泛应用于Java开发中的单元测试框架,它极大地简化了测试代码的编写和执行。作为Java事实上的标准单元测试库,JUnit 4 的易用性和灵活性使其成为开发者首选的测试工具。本文将深入讲解JUnit 4的关键...

    Android JUnit单元测试实例

    一个简单的Android JUnit测试类通常会继承自`androidx.test.ext.junit.runners.AndroidJUnit4`。这个运行器使得我们可以在Android环境中使用JUnit 4的特性。例如: ```java import androidx.test.ext.junit.runners...

    Junit单元测试Junit单元测试Junit单元测试

    可以使用IDE内置的测试工具或者命令行工具运行JUnit测试。 #### 五、JUnit高级特性 - **参数化测试**:允许同一个测试方法使用不同的输入数据执行多次。 - **忽略测试**:有时候可能需要暂时跳过某些测试用例,...

    junit4单元测试实例

    本篇文章将深入探讨JUnit4的单元测试实例,帮助你更好地理解和应用这个工具。 一、JUnit4简介 JUnit4相较于之前的版本,引入了注解(Annotation)机制,极大地简化了测试用例的编写。例如,`@Test`注解用于标记测试...

    Junit白盒测试学习文档

    Junit4是其一个重要的版本,引入了许多新特性,如注解(Annotations)、测试套件(Test Suites)以及参数化测试等。 **二、Junit4的核心概念** 1. **注解(Annotations)**:Junit4使用注解简化了测试的声明。例如...

    使用eclipse与Junit4进行单元测试的简单例子

    总结一下,使用Eclipse和JUnit4进行单元测试的关键步骤包括: 1. 安装JUnit插件 2. 创建Java项目并添加JUnit库 3. 编写待测试的Java类 4. 创建测试类,使用`@Test`注解标记测试方法 5. 使用断言方法如`assertEquals`...

    junit软件测试工具

    4. 测试注解:通过使用像@Test这样的注解,JUnit可以识别哪些方法是测试方法,并在运行时执行它们。 三、JUnit的使用步骤 1. 引入JUnit库:在Java项目中,需要添加JUnit的jar包(如junit.jar)作为项目的依赖,现代...

    基于Spring的JUnit单元测试

    总结一下,基于Spring的JUnit4单元测试涉及到以下几个关键点: 1. 使用`@RunWith(SpringRunner.class)`和`@ContextConfiguration`设置Spring测试环境。 2. `@Autowired`注解注入需要测试的bean。 3. 编写`@Test`注解...

    Junit测试报告.pdf

    Junit测试报告.pdf 本文档是关于Junit单元测试的报告,报告的主要内容包括实验目的、实验环境、实验内容、实验步骤、测试用例、测试计划、覆盖率测试报告等。 在实验目的中,报告指出Junit单元测试的目的是为了...

    Junit4.zip

    总结起来,JUnit4作为Java单元测试的重要工具,通过其强大的注解系统、丰富的断言方法、灵活的扩展机制,使得测试工作变得高效且易于维护。熟练掌握JUnit4,将有助于提升软件项目的质量和稳定性,是每个Java开发者...

Global site tag (gtag.js) - Google Analytics