Junit参数化测试方法(一)

本文详细介绍JUnit4参数化测试的五个步骤,并通过具体案例演示如何应用这些步骤进行实际的测试工作。案例中使用了Parameterized运行器进行参数化测试,并展示了如何设置测试数据和预期结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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、运行结果:

 

转载于:https://www.cnblogs.com/shuaijie/articles/5761312.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值