`

Junit与TestNG参数化测试比较

阅读更多

在TestNG中,直接使用@DataProvider进行参数化测试:

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.Assert.*;

public class Addition {
	public int add(int a, int b) {
		return a+ b;
	}
	
	@DataProvider(name = "addition")
	public Object[][] createData(){
		return new Object[][] {{1,2,3},{0,0,1},{-1,1,0},{-1,-2,-3}};
	}
	
	@Test(dataProvider = "addition")
	public void addtionTest(int a1, int a2, int result){
		Addition ad = new Addition();
		assertEquals(ad.add(a1, a2), result);
	}

}

 而在Junit中一定要新建一个类,在构造函数中初始化数据:

import static org.junit.Assert.*;

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

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;


@RunWith(Parameterized.class)
public class AdditionTest {
	private int d1, d2;
	private int result;
	public AdditionTest(int d1, int d2, int result) {
		super();
		this.d1 = d1;
		this.d2 = d2;
		this.result = result;
	}
	
	@Parameters
	@SuppressWarnings("unchecked")
	public static Collection getParamters(){
	    Object [][] object = {{1,2,3},{0,0,0},{-1,1,0},{-1,-2,-3}};  
	    return Arrays.asList(object);      
	}
	
	@Test
	public void testAddition(){
		Addition ad = new Addition();
		assertEquals(this.result, ad.add(this.d1, this.d2));
	}
	
}

 结论:相较之下,用TestNG去实现可以让代码更加简单一些

1
2
分享到:
评论

相关推荐

    Selenium+Eclipse+Junit+TestNG自动化学习笔记

    - **利用 TestNG 的参数化功能**: ```java @Test(dataProvider = "data") public void testWithDataProvider(String username, String password) { // 测试逻辑 } @DataProvider public Object[][] data() {...

    testing-junit-testng

    3. **数据驱动测试**:通过参数化测试方法,可以针对不同的数据集运行相同的测试逻辑,非常适合数据驱动测试场景。 4. **重试机制**:支持对失败的测试进行重试,并可自定义重试次数。 5. **报告和日志**:提供详尽...

    testNG与Junit相同功能概要介绍

    此外,TestNG的@Parameters注解允许从外部数据源(如CSV或XML文件)获取参数,便于进行参数化测试。 在报告方面,TestNG的内置报告比JUnit更详细,包括测试方法的执行时间、失败原因等信息。同时,TestNG也更容易与...

    java+selenium+maven+testng自动化测试框架实例(实际项目)

    **TestNG**: TestNG是另一个流行的测试框架,提供了比JUnit更高级的功能,如并发测试、参数化测试、测试套件和报告。TestNG可以和Selenium结合使用,用于组织和运行测试用例,以及生成详细的测试报告。它支持注解,...

    junit和TestNG框架入门

    - **TestNG**: TestNG是一个基于JUnit和NUnit思想设计的新一代测试框架,提供了更丰富的特性和灵活性,包括但不限于并行测试执行、灵活的依赖管理、更强大的参数化支持等。TestNG相比JUnit在测试控制、重复执行、...

    Appium+TestNG自动化测试

    在实际项目中,你可能还需要考虑测试数据的参数化,使用TestNG的`@Parameters`注解来读取外部配置文件,实现不同数据集的测试。此外,利用TestNG的并行测试功能,可以显著提升测试执行的效率。 总之,Appium+TestNG...

    TestNG-6.3 测试框架

    总的来说,TestNG 6.3是一个强大且灵活的测试框架,它的特性如并行测试、丰富的注解、测试分组、参数化测试以及详细的报告,使得它在软件测试领域具有很高的价值。对于正在学习和使用TestNG的开发者来说,深入理解并...

    java测试新技术-TestNG和高级概念

    TestNG与传统的JUnit测试框架不同,它提供了更多高级的测试功能,比如并行测试、参数化测试、测试依赖管理、灵活的运行时配置等。TestNG旨在简化测试的编写和维护,同时提供了一个强大的框架,使得测试能够更加灵活...

    软件测试与Junit实践

    为了更高级的测试需求,Junit还提供了参数化测试。这种测试方式允许使用不同的输入数据运行同一测试,以确保代码在各种情况下都能正确工作。同时,测试套件(Suite)的概念允许将多个测试类组合在一起,一次性运行...

    junit-dataprovider为JUnit提供一个类似于TestNG的dataproviderrunner

    "junit-dataprovider"是一个JUnit扩展,它允许开发者像TestNG一样,通过数据提供者来运行参数化的测试用例。这样,我们可以为同一测试方法提供多种输入数据,以验证不同情况下的代码行为。这在处理复杂逻辑或需要...

    junit4测试源码

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

    TestNG教程.pdf

    一旦环境配置完毕,测试人员就可以编写测试代码,利用TestNG提供的注解来组织测试案例,创建套件测试、参数化测试、异常测试、依赖测试等,并且能够通过TestNG生成的报告来分析测试结果。 另外,TestNG也能够与...

    集成 Jenkins 和 TestNG 实现自助式自动化测试平台

    TestNG是一款强大的Java测试框架,在Junit的基础上进行了大量改进和增强,支持从单元测试到集成测试的多种场景。 - **灵活的自动化测试定制**:平台允许用户通过Web界面自定义测试计划,包括选择自动化测试包、...

    Java测试新技术:TestNG和高级概念

    7. **数据驱动测试**:通过@DataProvider,TestNG可以为测试方法提供多组输入数据,实现数据驱动的测试,方便进行参数化测试。 8. **配置方法**:@Before/After系列注解允许定义在测试执行前后的配置方法,如初始化...

    junit4单元测试

    除了基本的测试功能,JUnit4还可以与其他工具和库集成,比如Mockito用于模拟对象,Hamcrest库用于更复杂的断言,以及TestNG等其他测试框架。这极大地扩展了JUnit4的功能,使其成为Java开发中的强大测试工具。 总结...

    Java测试新技术TestNG和高级概念 (英文版 清晰pdf 可下载)

    7. **参数化测试**:TestNG支持参数化测试,允许你使用不同的输入值多次运行同一个测试,这样可以节省大量编写重复代码的时间。 8. **数据驱动测试**:结合参数化测试,TestNG可以实现数据驱动测试,即从外部数据源...

    Junit测试jar包

    7. **参数化测试**:通过`@Parameterized`注解,JUnit支持基于不同参数运行相同测试的方法,这在需要对多种输入进行测试的情况下非常有用。 8. **超时测试**:使用`@Test(timeout = milliseconds)`可以设置测试方法...

    selenium3+java+Maven+TestNG+ReportNG+Excel自动化参数测试框架源码

    综上所述,这个框架通过组合Selenium、Java、Maven、TestNG、ReportNG和Excel,实现了高度自动化和参数化的测试流程,不仅能够有效地执行测试,还能生成详细的测试报告,提高了测试质量和效率。开发者或测试工程师...

Global site tag (gtag.js) - Google Analytics