[英]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.