镇江网站建设费用,温州市微网站制作多少钱,烟台有没有做网站,设计一个网站的首页步骤最近在看Junit4的相关知识#xff0c;由于本身做的是自动化方面的测试#xff0c;所以工作上着重于应用TestNG。恰好遇到了一个将case进行参数化的需求#xff0c;故在此记录Junit4和TestNG在参数化方面的区别。 一、Junit4和TestNG的注释支持 特点JUnit 4TestNG测试注释Tes…最近在看Junit4的相关知识由于本身做的是自动化方面的测试所以工作上着重于应用TestNG。恰好遇到了一个将case进行参数化的需求故在此记录Junit4和TestNG在参数化方面的区别。 一、Junit4和TestNG的注释支持 特点JUnit 4TestNG测试注释TestTest在套件中的所有测试运行之前运行-BeforeSuite在套件中的所有测试运行之后运行-AfterSuite测试之前运行-BeforeTest测试之后运行-AfterTest在调用属于任何这些组的第一个测试方法之前运行-BeforeGroups在调用属于任何这些组的第一个测试方法之后运行-AfterGroups在调用当前类的第一个测试方法之前运行BeforeClassBeforeClass在调用当前类的第一个测试方法之后运行AfterClassAfterClass在每个测试方法之前运行BeforeBeforeMethod在每个测试方法之后运行AfterAfterMethod忽略测试ignoreTest(enbalefalse)预期的异常Test(expected ArithmeticException.class)Test(expectedExceptions ArithmeticException.class)超时测试Test(timeout 1000)Test(timeout 1000) 二、Junit4和TestNG的参数化支持 下面我们来针对最简单的计算器加法类进行测试。 Calculator.class package jqi.testng.methods;/*** Just create a tiny class Calculator*/
public class Calculator
{public Calculator(){}public int add(int firstNumber, int secondNumber){return firstNumber secondNumber;}public static void main( String[] args ){System.out.println( Hello World! );}
} Junit4 中的实现 1 package jqi.testng.testcases;2 3 import java.util.Arrays;4 import java.util.Collection;5 6 import org.junit.BeforeClass;7 import org.junit.Test;8 import org.junit.runner.RunWith;9 import org.junit.runners.Parameterized;
10 import org.junit.runners.Parameterized.Parameters;
11 import org.junit.Assert;
12
13 import jqi.testng.methods.Calculator;
14
15 RunWith(Parameterized.class)
16 public class CalculatorJunit4Test {
17
18 private int firstNumber;
19 private int secondNumber;
20 private int sum;
21 public static Calculator calculator;
22
23 public CalculatorJunit4Test(int firstNumber, int secondNumber, int sum){
24 super();
25 this.firstNumber firstNumber;
26 this.secondNumber secondNumber;
27 this.sum sum;
28 }
29
30 BeforeClass
31 public static void setUp(){
32 calculator new Calculator();
33 }
34
35 /**
36 * 这里的返回的应该是一个可迭代数组且方法必须是public static
37 * return
38 */
39 Parameters
40 public static CollectionObject[] getParams(){
41
42 Object[][] data new Object[][] {{12,9,21},{45,44,89},{18,9,27}};
43 return Arrays.asList(data);
44 }
45
46 Test
47 public void a_addTest() {
48 Assert.assertTrue(calculator.add(firstNumber, secondNumber) sum);
49 }
50 } Junit4 test case junit4对于参数化的支持有很多限制必须将参数传递给初始化函数后才能够应用而且参数的返回类型必须是 List [ ]因此数据已被限制为String或用于测试的原始类型值 TestNG 中的实现 package jqi.testng.testcases;import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;import jqi.testng.methods.Calculator;/*** Unit test for Calculator.*/
public class CalculatorTestNGTest
{public Calculator calculator;BeforeTestpublic void setUp(){calculator new Calculator();}/*** return {{firstNumber, secondNumber, sum}, ...}* */DataProvider(namecalculatorDataProvider)public Object[][] getData() {return new Object[][]{{12,9,21},{45,44,89},{18,9,27}};}Test(dataProvidercalculatorDataProvider)public void a_addTest(int firstNumber, int secondNumber, int sum){Assert.assertTrue(calculator.add(firstNumber, secondNumber) sum);}
} TestNG test case TestNG存在两种参数化方式其中一种是利用XML的配置文件这里略过这种方式可以看到TestNG的参数化测试非常用户友好和灵活(在XML文件或类内)。 它可以支持许多复杂的数据类型作为参数值转载于:https://www.cnblogs.com/Seven13G/p/7762226.html