![](/img/trans.png)
[英]How do you mock a method which uses a private static inner class as a parameter?
[英]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.