gpt4 book ai didi

java - 如何更改旧单元测试的私有(private)抽象父字段

转载 作者:行者123 更新时间:2023-12-01 12:41:55 24 4
gpt4 key购买 nike

如果我有:

 public abstract class A {
private Object target; // <- **IMPORTANT**

protected Blah blah // ... Not directly relevant to the question,
protected Blah blah2 // they are just a potential reason to extend
// test class ...?

public int func (){
int hello = Integer.parseInt(target.Fields.want2Change);
return hello;
}
}

我想测试A类。因为它是抽象的,所以我用 ATest 类来扩展它。还有其他字段,但它们受到保护,这是合理的。

我的问题是来自子类,我如何访问家长私有(private)字段,例如目标

我混合使用了模拟(Mockito)和反射。

我也尝试过只使用反射而不扩展类。

最佳答案

这并不能直接回答您的问题,但是否可以通过某种方式行使父类的公共(public) api 来测试私有(private)字段状态?

如果你能做到这一点,那么就不需要反射(reflection),而且从长远来看,这可能更容易维护。

如果没有,那么您必须扩展该类并使用 relection 来获取私有(private)属性(property)的句柄。

查看此主题:

Access to private inherited fields via reflection in Java

关于java - 如何更改旧单元测试的私有(private)抽象父字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25024369/

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