【发布时间】:2018-02-27 16:14:39
【问题描述】:
我正在尝试将参数化测试添加到我的 Java 程序中。我找到了 JUnit 5 的示例,我确实包含了这些示例。
https://blog.codefx.org/libraries/junit-5-parameterized-tests/
问题是我无法添加@ParameterizedTest,因为缺少命名空间。不知道为什么或如何。
documentation 页面明确指出它在 org.junit.jupiter.params 中,但我没有。
让您了解我的代码:
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);
}
}
【问题讨论】:
标签: java unit-testing junit junit5