Junit5 JUnit 5@Theory和@DataPoint

Junit5 JUnit 5@Theory和@DataPoint,junit5,Junit5,我是一个尝试学习JUnit的新手,我正在学习一些我很确定是用于教授JUnit4的材料,但我正在尝试学习JUnit5。这给了我一个练习,用@Theory和@DataPoints/@DataPoint创建一个测试 这些在JUnit5中有效吗?如果是的话,有人能提供一个关于如何使用它们的好的概述或资源吗?如果没有,那么重新创建这些功能的最佳方式是什么 谢谢。Jupiter(JUnit5的默认测试引擎)不支持理论概念。类似的,现在更常见的是基于属性的测试的概念,例如由JUnit5的第三方测试引擎支持。您

我是一个尝试学习JUnit的新手,我正在学习一些我很确定是用于教授JUnit4的材料,但我正在尝试学习JUnit5。这给了我一个练习,用@Theory和@DataPoints/@DataPoint创建一个测试

这些在JUnit5中有效吗?如果是的话,有人能提供一个关于如何使用它们的好的概述或资源吗?如果没有,那么重新创建这些功能的最佳方式是什么


谢谢。

Jupiter(JUnit5的默认测试引擎)不支持理论概念。类似的,现在更常见的是基于属性的测试的概念,例如由JUnit5的第三方测试引擎支持。您可以在此处找到JVM的其他选项:


另一个选择是只使用老式测试引擎进行理论示例,使用Jupiter进行其余操作

在JUnit 5中,理论称为参数化测试,数据点通过ValueSource给出

import org.junit.jupiter.params.ParameterizedTest;
import static org.junit.jupiter.api.Assertions.assertEquals;

@ParameterizedTest
@ValueSource(doubles = {Double.MIN_VALUE, -4.0, 0.0, 0.5, 1.0, 2.0, Double.MAX_VALUE, Double.POSITIVE_INFINITY})
public void floorTest(double n) {
    assertEquals( (int)n, Math.floor( n ), 0 );
}