对代码进行Junit4 参数化测试
时间: 2023-07-10 18:14:10 浏览: 127
Junit参数化测试源代码
5星 · 资源好评率100%
好的,我来给你演示一下如何使用 Junit4 进行参数化测试。
首先,你需要在代码中引入 Junit4 的依赖。在 Maven 项目中,你可以在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
```
然后,在 Task 类的同一个包下,创建一个名为 `TaskTest` 的测试类。在该类中,使用 `@RunWith(Parameterized.class)` 注解标记该类并创建一个静态方法来提供测试数据:
```java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import java.util.Arrays;
import java.util.Collection;
@RunWith(Parameterized.class)
public class TaskTest {
private int x;
private int y;
private int z;
private int expected;
public TaskTest(int x, int y, int z, int expected) {
this.x = x;
this.y = y;
this.z = z;
this.expected = expected;
}
@Parameters
public static Collection<Object[]> data() {
Object[][] data = new Object[][] {
{ 1, 2, 3, 6 },
{ 4, 4, 11, 20 },
{ 5, 6, 10, 21 },
{ 2, 3, 13, 18 },
{ 10, 1, 5, 16 }
};
return Arrays.asList(data);
}
@Test
public void testFuncCoverage() {
Task task = new Task();
int result = task.funcCoverage(x, y, z);
assertEquals(expected, result);
}
}
```
在上面这个例子中,我们定义了一个包含多组测试数据的二维数组 `data`,每组数据都包含了三个参数 x、y、z 和一个期望的结果。`@Parameters` 注解标记的方法 `data()` 返回一个 `Collection` 对象,其中包含了所有的测试数据。在测试类的构造函数中,我们使用这些测试数据初始化了类中的字段。在 `testFuncCoverage()` 方法中,我们通过创建 Task 对象并调用 `funcCoverage()` 方法来测试代码的正确性。
最后,你可以使用你的 IDE 中的 Junit 运行器运行测试代码,并观察测试结果。
阅读全文