You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

参数化测试类构造器报错:需仅含一个公共无参构造方法

问题解决:测试类构造器报错

报错信息翻译

测试类必须恰好有一个公共的无参构造方法

解决方案

  • 给ParameterTest类添加@RunWith(Parameterized.class)注解,这是JUnit 4参数化测试的必要配置。没加这个注解的话,JUnit会按普通测试类的规则检查构造器,强制要求存在无参构造。修改后的类代码示例:
@RunWith(Parameterized.class)
public class ParameterTest extends MainTest { 

    int number; 
    boolean expectedPrime;

    @Parameterized.Parameters 
    public static List<Integer> getData() { 
        return Arrays.asList(1,2,6,9,482);
    }

    public ParameterTest(int number){
        this.number = number;
    }

    @Before
    public void openBaseUrl(){
        driver.get(getBASE_URL()+"primenumber.php");
    }

    // 其他测试代码...
}
  • 检查父类MainTest是否有可访问的无参构造方法。如果MainTest只有带参数的构造器,需要在ParameterTest的构造器中显式调用父类构造器并传入所需参数,示例:
public ParameterTest(int number) {
    super(/* 填入父类构造器要求的参数 */);
    this.number = number;
}

内容的提问来源于stack exchange,提问作者cenitram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:57:56