junit高级篇(参数化、打包测试)-实例代码

工程目录:

参数化测试,SquareTest.java:

 1 import static org.junit.Assert.*;
 2 
 3 import java.util.Arrays;
 4 import java.util.Collection;
 5 
 6 import org.junit.Before;
 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 
12 @RunWith(Parameterized.class)
13 public class SquareTest {
14     private static Calculator calculator = new Calculator();
15     private int param;
16     private int result;
17     
18     
19     @Parameters
20     public static Collection data(){
21         return Arrays.asList(new Object[][]{
22                 {2,4},
23                 {0,0},
24                 {-3,9},
25         });
26     }
27     
28     //构造函数,对变量进行初始化
29     public SquareTest(int param,int result){
30         this.param = param;
31         this.result = result;
32     }
33     
34     @Test
35     public void square(){
36         calculator.square(param);
37         assertEquals(result,calculator.getResult());
38     }
39     
40 }
View Code

打包测试,AllCalculatorTests.java:

 1 import org.junit.runner.RunWith;
 2 import org.junit.runners.Suite;
 3 
 4 @RunWith(Suite.class)
 5 @Suite.SuiteClasses({
 6     CalculatorTest.class,
 7     SquareTest.class
 8 })
 9 public class AllCalculatorTests {
10 
11 }
View Code

执行AllCalculatorTests.java的结果

转载于:https://www.cnblogs.com/shanJX/p/4720993.html

好的,关于 Java 参数化测试JUnit 提供了参数化测试的功能,可以让我们更方便地编写测试用例。在 JUnit 中,参数化测试使用 @RunWith(Parameterized.class) 注解标记测试,并使用 @Parameter 注解标记测试方法中每个参数的值。具体步骤如下: 1. 创建一个测试,并使用 @RunWith(Parameterized.class) 注解标记该。 2. 声明一个静态方法,该方法返回一个集合,集合中的每个元素都是一个数组,表示测试方法中的参数。 3. 在测试的构造方法中,使用 @Parameter 注解标记测试方法中每个参数的值。 4. 编写测试方法,使用测试方法中的参数运行测试用例。 例如,下面是一个简单的参数化测试示例: ``` @RunWith(Parameterized.class) public class CalculatorTest { private int a; private int b; private int expected; public CalculatorTest(int a, int b, int expected) { this.a = a; this.b = b; this.expected = expected; } @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { { 1, 2, 3 }, { 3, 4, 7 }, { 5, 6, 11 } }); } @Test public void testAdd() { Calculator calculator = new Calculator(); int result = calculator.add(a, b); assertEquals(expected, result); } } ``` 在上面的示例中,我们使用 @Parameters 注解标记了一个静态方法 data(),该方法返回一个集合,集合中包含了每个测试用例的参数值。在测试的构造方法中,使用 @Parameter 注解标记了测试方法中的每个参数,这些参数会在测试方法被调用时传递给测试方法。在测试方法中,我们使用传递过来的参数运行测试用例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值