作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有抽象类和子类:
A.java:
package myPackage;
import java.util.ArrayList;
import java.util.List;
public abstract class A {
protected abstract int getInt();
protected List<Integer> get10Int() {
List<Integer> list = new ArrayList<>();
for(int i = 0; i < 10; i++){
list.add(getInt());
}
return list;
}
}
AImp.java:
package myOtherPackage;
import myPackage.A;
public class AImp extends A {
@Override
protected int getInt(){
return 1;
}
}
我在与子类相同的包中定义了一个测试:
package myOtherPackage;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class AimpTest {
@Test
public void testProtectedMethodFromSuperClass(){
AImp aimp = new AImp();
assertEquals(aimp.get10Int().size(), 10);
}
}
并且我收到错误,因为 get10Int()
在 myPackage.A
中具有 protected 访问权限。有什么方法可以测试此方法(这是另一个包中父类(super class)的继承方法),同时将 AImp
和 AImpTest
保留在 myOtherPackage
中,并将父类(super class)保留在自己的包中?
最佳答案
我会亲自为 A 类创建一个测试,在您的测试中使用虚拟实现,然后测试您的函数。这样就不需要对每个实现进行测试。
关于java - 如何测试另一个包中父类(super class)的 protected 继承方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54790869/
我是一名优秀的程序员,十分优秀!