如何更改遗留单元测试的私有抽象父字段



如果我有:

 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类。因为它是抽象的,所以我用Class test来扩展它。还有其他领域,但它们受到保护,这是合理的。

我的问题是来自子类,我如何访问 PRIVATE字段,如target

我正在使用嘲笑(Mockito)和反射的混合。

我也试过只是使用反射和不扩展类。

这并不能直接回答你的问题,但是有可能通过行使父类的公共api来测试私有字段状态吗?

如果你能做到这一点,那么就不需要反射,这可能更易于长期维护。

如果没有,则必须扩展类并使用r选择来获取私有属性的句柄。

查看这个线程:

在Java中通过反射访问私有继承字段

相关内容

  • 没有找到相关文章

最新更新