`
ttitfly
  • 浏览: 623950 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JUnit4中参数化测试

阅读更多
JUnit4中参数化测试要点:

1. 测试类必须由Parameterized测试运行器修饰

2. 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求:

1)该方法必须由Parameters注解修饰
2)该方法必须为public static的
3)该方法必须返回Collection类型
4)该方法的名字不做要求
5)该方法没有参数

如:
测试方法:
public int add(int a,int b){
		return a+b;
	}


测试代码:
package org.test;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
/**
 * 参数化测试的类必须有Parameterized测试运行器修饰
 *
 */
@RunWith(Parameterized.class)
public class AddTest3 {

	private int input1;
	private int input2;
	private int expected;
	
	/**
	 * 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求:

		 1)该方法必须由Parameters注解修饰
		 2)该方法必须为public static的
		 3)该方法必须返回Collection类型
		 4)该方法的名字不做要求
		 5)该方法没有参数
	 * @return
	 */
	@Parameters
	@SuppressWarnings("unchecked")
	public static Collection prepareData(){
		Object [][] object = {{-1,-2,-3},{0,2,2},{-1,1,0},{1,2,3}};
		return Arrays.asList(object);
	}
	
	public AddTest3(int input1,int input2,int expected){
		this.input1 = input1;
		this.input2 = input2;
		this.expected = expected;
	}
	@Test
	public void testAdd(){
		Add add = new Add();
		int result = add.add(input1, input2);
		Assert.assertEquals(expected,result);
	}
	
}

分享到:
评论

相关推荐

    Junit参数化测试源代码

    对于提供的"mybatisDemo"文件,虽然没有具体的代码细节,但我们可以假设它可能包含了一个使用MyBatis的项目,并且项目中应用了Junit参数化测试来验证MyBatis的Mapper接口或Service层方法。在这样的场景下,你可以...

    junit参数化测试的使用方法

    ### JUnit参数化测试的使用方法 #### 一、引言 JUnit是Java开发中最常用的单元测试框架之一,它提供了一种简单的方式来编写可重复执行的测试案例。随着软件复杂度的增加,对于某些功能模块可能需要多次使用不同的...

    junit4测试jar包

    5. **参数化测试**:`@Parameterized`测试可以使用不同的参数多次运行同一个测试方法,这对于测试多种输入情况非常有用。 6. **超时测试**:`@Test(timeout = 1000)`可以设置测试方法的执行时间限制,超过设定时间...

    在Eclipse中使用JUnit4进行单元测试

    为了更好地组织测试,可以使用`@RunWith`注解配合测试运行器(如`Parameterized`或`Suite`),实现参数化测试和组合测试。参数化测试允许为同一个测试方法提供多组输入数据,而`Suite`则能将多个测试类组合成一个...

    junit4单元测试

    除此之外,JUnit4还支持参数化测试,通过`@Parameters`注解和`parameters()`方法可以为测试方法提供多组输入数据,实现对同一函数的多次测试。这对于测试具有多种输入情况的函数非常有用。 异常测试也是JUnit4的一...

    junit4测试源码

    其次,JUnit4支持参数化测试,这意味着一个测试方法可以使用不同的参数多次执行。`@Parameters`注解用于提供参数数据,`@Parameterized.Parameters`方法返回一个包含参数的集合。 异常测试也是JUnit4的一个重要特性...

    单元测试利器JUnit4

    JUnit4相较于早期版本引入了许多改进,如注解、参数化测试和测试套件等,使得测试代码更加简洁和灵活。 2. 注解(Annotations): JUnit4的核心特点是广泛使用注解,这使得测试类和方法的声明更清晰。例如: - `@...

    JUnit3.8.1 以及使用JUnit测试的代码demo

    在实际应用中,开发者通常会使用构建工具(如Maven或Gradle)配合JUnit进行自动化测试,这使得测试能够集成到开发流程中,并且可以在每次代码修改后自动运行。JUnit的结果可以通过测试报告展示,帮助开发者快速定位...

    junit4 jar包 Java单元测试框架绿色免费版.zip

    在实际项目中,开发者通常会配合使用`@RunWith`注解来选择测试运行器(Test Runner),比如`@RunWith(Suite.class)`或`@RunWith(Parameterized.class)`,以实现更复杂的测试场景,如组合测试或参数化测试。...

    Junit4测试总结

    ### 四、参数化测试 JUnit4的`@Parameters`注解和`Parameterized`测试类可以实现参数化的测试,即用不同的输入数据多次运行同一个测试。 ```java @RunWith(Parameterized.class) public class ParameterizedTest {...

    eclipse下利用ant、junit进行自动化测试例子源码

    JUnit支持注解、参数化测试、异常测试等特性,使得编写和执行单元测试变得更加简单。 4. **自动化测试**:自动化测试是指通过软件工具自动执行预先编写的测试脚本来检查程序功能是否正确的一种方法。相比手动测试,...

    junit4测试工具

    其次,JUnit4支持参数化测试,允许使用不同的输入数据执行同一个测试方法。这通过`@Parameters`注解和相关的静态方法实现,可以大大提高测试覆盖率,确保代码对各种可能的输入都能正确处理。 再者,JUnit4引入了...

    Spring+JUnit4 +Ant测试报告

    JUnit4还支持参数化测试、异常测试等多种测试场景,使得测试更加灵活和全面。 接下来,Ant是一个基于XML的构建工具,用于自动化Java项目中的编译、打包、测试等任务。在Spring和JUnit4的测试环境中,Ant通常被用来...

    单元测试利器 JUnit 4

    此外,JUnit 4还支持参数化测试,允许用不同参数多次运行同一个测试方法,提高了测试覆盖率。 总的来说,JUnit 4以其简洁的注解语法和强大的断言机制,使得单元测试变得高效且易于维护。它不仅帮助开发者编写可靠的...

    JUnit多参数测试实例整合FizzBuzz

    1. **创建参数化测试类**:首先,我们需要创建一个测试类,并使用`@RunWith(Parameterized.class)`注解,声明这是一个参数化的测试类。 2. **定义公共静态方法来提供参数**:这个方法应该返回一个`Collection`对象,...

    Junit4测试使例

    通过名为`junit4Demo`的压缩包文件,我们可以看到一系列的JUnit4测试示例,包括基础的断言测试、异常测试、超时测试、参数化测试等。通过对这些示例的实践,开发者可以深入理解JUnit4的各种用法,并将其应用于日常的...

    Junit4单元测试入门例子

    在实际项目中,可能还需要引入Mockito等工具对依赖进行模拟,以及使用持续集成工具进行自动化测试。 总结,Junit4使得Java的单元测试变得简单而直观。通过注解,我们可以快速定义测试方法,结合断言库进行结果验证...

    Java单元测试JUnit4.7

    2. **参数化测试**:允许用不同的参数运行同一测试方法,这样可以测试多种情况,比如遍历各种输入值,确保方法在所有情况下都能正确处理。 3. **异常测试**:使用@Test注解的可选属性expected,可以指定方法应该抛...

Global site tag (gtag.js) - Google Analytics