(Java)TestNG/Junit - 如何在没有零参数构造函数的情况下对 class 中的受保护方法进行单元测试?

(Java)TestNG/Junit -How to Unit test a protected method in a class with no zero-argument-constructor?

我有一个class

Class abc extends base {
public abc(String a, String b)
{
super(a,b);
}

@Override
protected Object fun(String a)
{Object x;
doSomething;
return x;
}}

注意:此class没有零参数构造函数。

我应该为函数 fun(..) 添加一个单元测试。是否可以使用 -TestNG/JUnit/Mockito ?

如果您的单元测试与 class.

在同一个包中,您可以使用非零参数构造函数创建一个对象并对受保护的方法进行单元测试

如果绝对有必要抑制构造函数,PowerMock可以做到。

我已经找到了解决办法。 我创建了一个测试 class:

public class testAbc extends abc {
public testAbc()
{super("x","y");}
@Override
public Object fun(String a){
Object x = super.fun(a);
}

@Test
public void testFun()
{
TestAbc t = new TestAbc();
t.fun("testString");
}


}

在测试中创建默认构造函数 class 并创建重写函数 public。