Java JUnit5中缺少org.junit.jupiter.params
我正在尝试将参数化测试添加到Java程序中。我找到了JUnit5的示例,我已经包含了这些示例 问题是我无法添加@ParameterizedTest,因为缺少命名空间。Idk为什么或如何 页面清楚地表明它位于org.junit.jupiter.params中,但我没有 让您了解我的代码:Java JUnit5中缺少org.junit.jupiter.params,java,unit-testing,junit,junit5,Java,Unit Testing,Junit,Junit5,我正在尝试将参数化测试添加到Java程序中。我找到了JUnit5的示例,我已经包含了这些示例 问题是我无法添加@ParameterizedTest,因为缺少命名空间。Idk为什么或如何 页面清楚地表明它位于org.junit.jupiter.params中,但我没有 让您了解我的代码: import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.Collection; import static
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.jupiter.api.Assertions.*;
class SubsetPrinterTest
{
// https://blog.codefx.org/libraries/junit-5-parameterized-tests/
static Collection<Object[]> makeSetData()
{
return Arrays.asList(new Object[][]
{
{1, new char[]{'1'}},
{2, new char[]{'1', '2'}},
{3, new char[]{'1', '2', '3'}},
{4, new char[]{'1', '2', '3', '4'}},
{5, new char[]{'1', '2', '3', '4', '5'}}
});
}
// This should be a parameterized test using the makeSetData.
@Test
void makeSet()
{
// Arrange
SubsetPrinter subsetPrinter = new SubsetPrinter();
// Act
char[] set = SubsetPrinter.MakeSet(5);
// Assert
assertArrayEquals(set, new char[]{'1', '2', '3', '4', '5'});
assertEquals(set.length, 5);
}
}
import org.junit.jupiter.api.Test;
导入java.util.array;
导入java.util.Collection;
导入静态org.junit.jupiter.api.Assertions.*;
类子测试
{
// https://blog.codefx.org/libraries/junit-5-parameterized-tests/
静态集合makeSetData()
{
返回Arrays.asList(新对象[][]
{
{1,新字符[]{'1'},
{2,新字符[]{'1',2'},
{3,新字符[]{'1',2',3'},
{4,新字符[]{'1','2','3','4'},
{5,新字符[]{'1','2','3','4','5'}
});
}
//这应该是一个使用makeSetData的参数化测试。
@试验
void makeSet()
{
//安排
SubsetPrenter SubsetPrenter=新的SubsetPrenter();
//表演
char[]set=subsetprenter.MakeSet(5);
//断言
assertArrayEquals(集合,新字符[]{'1','2','3','4','5'});
资产质量(设定长度,5);
}
}
您的项目类路径必须包括一个版本的junit-jupiter-params xxx.jar
,比如来自
您链接到的codefx.org
的博客文章说(编辑到当前的5.0.0版本):
开始使用参数化测试非常简单,但在开始玩之前,您必须向项目中添加以下依赖项:
Group ID: org.junit.jupiter
Artifact ID: junit-jupiter-params
Version: 5.0.0
下载并手动添加它,或者如果您使用的是具有依赖关系管理(Gradle、Maven等)的构建工具,请相应地配置构建脚本(build.Gradle、pom.xml等)
在此处查找一些通用示例:
从版本5.4.0-M1开始JUnit Jupiter提供了一个聚合器工件,它将所有可用的Jupiter定义工件捆绑在一起,以便于使用。有关详细信息,请参阅。在pom.xml中添加以下依赖项。jupiter API[Junit 5]将模块作为插件来处理,每个插件都必须经过精心添加
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
org.junit.jupiter
我已经包括了第5版。它是由Intellij IDEA自动添加的,但似乎缺少了这一点。我将在下次打开项目时检查。谢谢。@Sormuras-为它添加另一个依赖项有点奇怪。我想知道为什么这不是jupiter api的一部分?从版本5.4.0-M1开始,JUnit jupiter提供了一个聚合器工件,它捆绑了所有可用的jupiter定义工件。有关详细信息,请参阅。对于gradle,请添加testImplementation'org.junit.jupiter:junit-jupiter-params:5.7.1'