繁体   English   中英

测试使用私有静态类的对象List的方法

[英]Testing a method which uses an List of objects of a private static class

我有我想测试的方法。 它的输入参数是私有静态类的对象列表

Class Invoker{

   public String method1(String inp){

   ArrayList<InnerClass> params = new ArrayList<>();
   params.add(new InnerClass("some value"));
   String op = method2(params);
   //other implementation
  }

   public String method2(ArrayList<InnerClass> list){

     //method implementation
  }

   private static class InnerClass {
      private String var1;

          public InnerClass(String str){
          super();
          this.str = str;
         }
   }
}

现在,我想为方法'method1'编写一个测试用例。 我面临的问题是,在测试时,我无法在测试类中创建ArrayList。

你在这里走错了兔子洞。

使内部类私有地与读者(以及编译器btw)通信,该内部类用于在外部封闭类中。 故事结局。

因此,在公共方法的签名中使用类名是没有意义的。

当然,理论上你可以使用反射来解决这个问题(直到Java 9模块可能进入你的方式),但正如所说:这样做是浪费时间。

如果您需要在课堂外使用,请不要将它们设为私有。 所以考虑将它们打包保护。 然后,同一个包中的用户可以访问,因此单元测试应该存在于同一个包中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM