返回错误“测试类应该具有一个完全为零的公共零参数构造函数”

时间:2018-08-15 15:43:09

标签: java junit compiler-errors

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

我用@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());
}
}

1 个答案:

答案 0 :(得分:2)

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

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.
}