访问具有私有访问说明符的参数的私有方法

时间:2015-01-15 11:07:56

标签: java junit

我正在为具有多个参数且具有私有访问说明符的方法编写 Junit 。我正在使用Java反射来实现这一目标。但是,此私有方法的参数之一是私有类。我在下面做:

ClassHavingPrivateMethod object = new ClassHavingPrivateMethod();
object.getClass().getDeclaredMethod(PRIVATE_METHOD_NAME, Param1.class, <This parameter is a private class Inside ClassHavingPrivateMethod>)

我该怎么办?

修改

我同意我不应该为具有反射的私有方法编写测试用例,并且应该始终通过包装器公共方法访问它。但是,有没有办法通过反思来实现上述目标。尽管如此,我不打算通过反思来编写我的测试用例,但我很想知道它。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以尝试将访问权限从私有更改为默认。通过将访问级别更改为默认值,另一方面,只能从同一个包(仍限制访问)访问该方法,因为您的测试类和测试类将在同一个包下,测试类可以直接调用该方法,而不需要任何技巧。

示例:

&#13;
&#13;
package com.test;

class SomeClass {
  String defaultMethod(){
   ...
  }
}


package com.test;

class SomeClassTest {
  public void testDefaultMethod(){
    SomeClass testObject = new SomeClass();
    testObject.defaultMethod();
  }
}
&#13;
&#13;
&#13;

希望它会有所帮助。