返回错误"Test class should have exactly one public zero-argument constructor"



搜索并找不到正确的答案后,我在这里提出它。

我用@Test编写了下面的简单类,当我尝试运行时,我收到"java.lang.Exception:测试类应该只有一个公共零参数构造函数"错误。有人可以帮助我解决这个问题吗?

package Shopping.Tests;
import Shopping.Config.TestData;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
@Slf4j
public class TestScenario1 {
private final TestData testData;
public TestScenario1(TestData testData) {
this.testData = testData;
}
@Test
public void sampleTest(){
log.info(testData.getBaseURL());
}
}

此非默认构造函数使测试框架无法创建类的实例

public TestScenario1(TestData testData) {

你需要一个无参数构造函数:

public TestScenario1() { //or have no explicit constructor declared at all

初始化测试数据通常在用@Before注释的方法中完成(假设junit是你的测试框架 - 请参阅@Before和@BeforeClass(

public TestScenario1() {}
@Before
public void prepareTestData() {
this.testData = fetchTestData()...//It can't be passed in as parameter.
}

相关内容

最新更新