Junit参数化测试方法(一)

一、JUnit4参数化测试的五个步骤:

(1)为准备使用参数化测试的测试类指定特殊的运行器 import org.junit.runners.Parameterized。
(2)为测试类声明几个变量,分别用于存放期望值和测试所用数据。
(3)为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值。
(4)为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对,该方法的名字不做要求、该方法没有参数。

(5)编写测试方法,使用定义的变量作为参数进行测试。

二、实战

    仍然以oracleconnect.jar测试为例,配置junit及导入JAR包过程略,详见http://www.cnblogs.com/shuaijie/articles/5757186.html

    1、新建junit test case:JunitTest002.java

 1 package JunitTestSample001;
 2 
 3 import java.util.Arrays;
 4 import java.util.Collection;
 5 
 6 import org.junit.AfterClass;
 7 import org.junit.Assert;
 8 import org.junit.BeforeClass;
 9 import org.junit.Test;
10 import org.junit.runner.RunWith;
11 import org.junit.runners.Parameterized;
12 import org.junit.runners.Parameterized.Parameters;
13 
14 import testsample001.check;
15 
16 @RunWith(Parameterized.class)
17 public class JunitTest002 {
18 
19     // private static IUserService userService = null;
20 
21     @BeforeClass
22     public static void setUp() throws Exception {
23     }
24 
25     // (2)步骤二:为测试类声明几个变量,分别用于存放期望值和测试所用数据。此处我只放了测试所有数据,没放期望值。
26     private String productNO;
27     private String resultInfo;
28 
29     // (3)步骤三:为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值。
30     public JunitTest002(String productsn, String expectInfo) {
31         this.productNO = productsn;
32         this.resultInfo = expectInfo;
33     }
34 
35     // (4)步骤四:为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为
36     // java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对。
37     @Parameters
38     @SuppressWarnings("rawtypes")
39     public static Collection testData() {
40 
41         return Arrays.asList(new Object[][] { { "1", "防伪码存在!" },
42                 { "2", "防伪码存在!" }, { "3", "防伪码存在!" }, });
43 
44     }
45 
46     // (5)步骤五:编写测试方法,使用定义的变量作为参数进行测试。
47     @Test
48     public void testresultInfo() {
49         System.out.println("-------------");
50         // User user2 = userService.findByName(usernameParam);
51         check connor = new check();
52         String actresultInfo = connor.ConnectOracle(productNO);
53         System.out.println(actresultInfo);
54         Assert.assertEquals(resultInfo, actresultInfo);
55     }
56 
57     @AfterClass
58     public static void tearDown() throws Exception {
59     }
60 }
View Code

    2、运行结果:

 

posted @ 2016-08-11 15:58  帅姐  阅读(4210)  评论(0编辑  收藏  举报