在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去实现可以让代码更加简单一些
相关推荐
表面上的相似依赖性测试失败和重运行参数化测试高级参数化测试为什么只选择其一?JUnit4具有基于注释的新框架,它包含了TestNG一些最优异的特性。但这是否意味着JUnit4已经淘汰了TestNG?AndrewGlover探讨了这两种...
其实这个next generation 也只是相对于Junit 3.8这个版本,在这个版本发布5年之后,从TestNG中借鉴了许多概念的Junit 4才发行,所以了解TestNG同样有助于学习Junit及Unit系列的众多分支。 软件开发是一项风险事业...
TestNG是一个开源的自动化测试框架,它受JUnit框架启发而实现的,TestNG可以让开发者和测试者能够通过简单的注解、分组、指定顺序、参数化就可以编写更加灵活、更加强大的测试用例。 TestNG可以跟web自动化框架...
与参数化运行器相比,它的主要优势在于,它可以与任何其他运行器一起使用(例如,如果您正在为 Android 编写测试,则可以与 Robolectric 运行器一起使用)。 博文: ://mikinw.blogspot.co.uk/2013/04/parametrized...
单元测试:我们需要规范的来做单元测试同样需要相应的单元测试框架,如java 的Junit、testNG, C#的NUnit ,Python 的unittest、pytest 等,几乎所有的主流语言,都会有其对应的单元测试框架。 集成、接口测试:对于...
Jenkins的JUnit插件 JUnit插件提供了一个发布者,该发布者使用了在构建期间生成的XML测试报告,并提供了一些历史测试结果的图形化可视化(有关示例,请参见),以及一个Web UI,用于查看测试报告,跟踪失败等等。...
使用Excel驱动的数据在JUnit中编写TestNG样式的参数化测试
此存储库包含对多项改进,使您可以在将JUnit 5与结合使用时更好地利用JUnit 5(木星引擎)。 此代码按原样提供; 您可以自由使用它并随意进行修改(请参阅前面的许可)。 这是一个初步发行版,因此随时可能更改。 ...
xml java系统源码 ...提供了更丰富的参数化运行,总的来说如果项目较为复杂我推荐使用更加灵活多变的 testng, 简单的项目就可以使用 junit5 来做 appium 写过 web 自动化脚本的人对于 appium 的上手会非常
13.1 用JUnit and TestNG创建测试 504 13.1.1 问题 504 13.1.2 解决方案 504 13.1.3 工作原理 504 13.2 创建单元测试和集成测试 509 13.2.1 问题 509 13.2.2 解决方案 509 13.2.3 工作原理 510 13.3...
13.1 用JUnit and TestNG创建测试 504 13.1.1 问题 504 13.1.2 解决方案 504 13.1.3 工作原理 504 13.2 创建单元测试和集成测试 509 13.2.1 问题 509 13.2.2 解决方案 509 13.2.3 工作原理 510 13.3...