gpt4 book ai didi

带参数的 Java 单元测试

转载 作者:行者123 更新时间:2023-12-01 14:07:58 25 4
gpt4 key购买 nike

在 C# 中,可以为相同的单元测试方法指定参数。示例:

[DataTestMethod]
[DataRow(12,3,4)]
[DataRow(12,2,6)]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}

是否可以在 Java 中做同样的事情?我已经阅读了参数化运行者,但这个解决方案并不容易使用。

最佳答案

在 JUnit 5 中,参数化测试在使用 JUnit 4 时确实更加直接和自然。

在您的情况下,要提供多个参数作为输入,您可以使用 @CsvSource 注释。

这里是需要的依赖(maven声明方式):

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.0-M4</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.0.0-M4</version>
<scope>test</scope>
</dependency>

这是一个示例代码(需要导入):

import org.junit.Assert;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

public class YourTestClass{

@ParameterizedTest
@CsvSource({ "12,3,4", "12,2,6" })
public void divideTest(int n, int d, int q) {
Assert.assertEquals(q, n / d);
}

}

关于带参数的 Java 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44865146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com