[英]How to test protected final method in Java using EasyMock?
我想使用 EasyMock 在 java 中为以下受保护的最终方法编写测试用例。 有没有办法使用 EasyMock 编写受保护的最终方法的测试用例?
我尝试使用反射方法编写 TC,但没有成功。
Class < ? extends Entity > type;
private Filter filter;
private Input input;
private transient Service access;
private transient ConfigDao confdao;
protected final Limitation getBaseLimitation() {
Validate.notNull(type);
GroupClass Group = new GroupClass(GroupTypeClass.SELECTOR);
if (A.class.isAssignableFrom(type)) {
filter = new Simple(A.ATTRIBUTE_ACTIVE, Operator.EQUALS, Boolean.TRUE); //A class has static final static String ATTRIBUTE_ACTIVE = "Active";
}
if (G.class.isAssignableFrom(type)) {
filter = new Simple("position", Operator.EQUALS, Position.ACTIVE);
}
if (Boolean.TRUE.equals(confdao.getconfdao().getarea())) {
if (U.class.isAssignableFrom(type)) {
Validate.notNull(input, "switched on.");
Object Inputobj = input.getInput();
return access.getBaseLimitation(type, Inputobj, Group, filter);
}
}
return access.getBaseLimitation(type, Group, filter);
}
public Simple(String path, Operator operator, Object value) {
this(Path, operator, new Object[]{value});
}
任何帮助,将不胜感激。
如果你是 mocking getBaseLimitation()
,不,EasyMock 帮不了你,因为 final 方法不能被覆盖。 PowerMock 可以帮助你,但我个人会放弃final
。
如果您正在测试它,您可以从 class 中的同一个 package 中。 但 EasyMock 不需要这样做。
那么, protected final
就没什么用了。 如果您不想超载,为什么要受到保护? 你最好是 package scope 或私人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.