java中的参数化测试代码
时间: 2024-03-10 17:44:26 浏览: 30
在Java中,可以使用JUnit框架进行参数化测试。以下是一个Java的参数化测试代码示例:
```java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
@RunWith(Parameterized.class)
public class CalculationTest {
private int num1;
private int num2;
private int expected;
public CalculationTest(int num1, int num2, int expected) {
this.num1 = num1;
this.num2 = num2;
this.expected = expected;
}
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{1, 2, 3},
{2, 3, 5},
{3, 5, 8}
});
}
@Test
public void testAddition() {
assert (num1 + num2) == expected;
}
}
```
在上面的代码中,首先定义了一个包含多组参数化数据的二维数组,每组数据包含两个加数和它们的和。然后,定义了一个参数化测试类 `CalculationTest`,使用 `@RunWith(Parameterized.class)` 注解标记它是一个参数化测试类。接着,在测试类中定义了三个私有变量 `num1`、`num2` 和 `expected`,并在构造函数中使用 `@Parameterized.Parameters` 注解将参数传递给测试类的构造函数。
在 `data()` 方法中,使用 `Arrays.asList()` 方法将包含多组参数化数据的二维数组转换为集合,然后将该集合作为返回值返回。
在 `testAddition()` 方法中,使用断言判断 `num1` 和 `num2` 的和是否等于 `expected` 的值。
当执行 `CalculationTest` 测试类时,JUnit会自动使用参数化数据来多次调用 `testAddition()` 方法,并检查每次函数调用的结果是否符合预期。这样就可以快速、方便地测试代码在不同情况下的正确性和稳定性。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)