gpt4 book ai didi

java - 如何使用 EasyMock 测试 Java 中 protected final方法?

转载 作者:行者123 更新时间:2023-12-02 09:18:24 24 4
gpt4 key购买 nike

我想使用 EasyMock 在 java 中为下面的 protected final方法编写测试用例。有没有办法使用 EasyMock 编写 protected final方法的测试用例?

我尝试使用Reflection方法编写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});
}

任何帮助将不胜感激。

最佳答案

如果您正在模拟 getBaseLimitation(),不,EasyMock 无法帮助您,因为 final方法无法被覆盖。 PowerMock 可以帮助你,但我个人会放弃final

如果您正在测试它,您可以从同一包中的类进行测试。但 EasyMock 不需要这样做。

然后,protected final 就没有什么用处了。如果您不想重载,为什么要受到保护?您最好是包范围或私有(private)的。

关于java - 如何使用 EasyMock 测试 Java 中 protected final方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58854734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com