gpt4 book ai didi

java - 使用私有(private)访问说明符访问具有参数的私有(private)方法

转载 作者:行者123 更新时间:2023-12-02 05:04:02 25 4
gpt4 key购买 nike

我正在为具有多个参数并具有私有(private)访问说明符的方法编写Junit。我正在使用 Java 反射来实现这一点。然而,这个私有(private)方法的参数之一是私有(private)类。我正在做以下事情:

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

我该如何继续?

编辑

我同意这样的观点:我不应该为带有反射的私有(private)方法编写测试用例,而应该始终通过包装器公共(public)方法来访问它。然而,有没有办法通过反射(reflection)来达到上述目的呢?尽管如此,我不会通过反射来编写我的测试用例,但我很想知道它。

非常感谢任何帮助。

最佳答案

您可以尝试的方法之一是将访问权限从私有(private)更改为默认。另一方面,通过将访问级别更改为默认,该方法只能从同一个包访问(仍然限制访问),因为您的测试类和被测类将位于同一个包下,即测试类可以直接调用该方法,无需做任何操作。

示例:

package com.test;

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


package com.test;

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

希望能有所帮助。

关于java - 使用私有(private)访问说明符访问具有参数的私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962036/

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