Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PowerMockito无法访问私有方法。为什么我们需要权力?我们可以通过反思来实现同样的目标_Java_Powermockito - Fatal编程技术网

Java PowerMockito无法访问私有方法。为什么我们需要权力?我们可以通过反思来实现同样的目标

Java PowerMockito无法访问私有方法。为什么我们需要权力?我们可以通过反思来实现同样的目标,java,powermockito,Java,Powermockito,powermock框架做的事情和我通过反射可以做的一样 对于基于Spring的容器,两者都可以实现测试驱动环境。我想Java中的大多数事情都可以使用反射来完成。如果需要,可以使用反射实现自己的集合类。模拟库使您无需大量样板代码即可轻松: 创建模拟 制造间谍 剔除方法 使用您自己的测试功能覆盖方法 将参数与方法调用匹配 检查在给定的执行中调用了哪些方法以及调用了多少次 PowerMock还特别允许您 模拟静态方法 模拟构造函数 模拟期末班 等 但是模拟库本身就是java代码,如果您想使用反

powermock框架做的事情和我通过反射可以做的一样


对于基于Spring的容器,两者都可以实现测试驱动环境。

我想Java中的大多数事情都可以使用反射来完成。如果需要,可以使用反射实现自己的集合类。模拟库使您无需大量样板代码即可轻松:

  • 创建模拟
  • 制造间谍
  • 剔除方法
  • 使用您自己的测试功能覆盖方法
  • 将参数与方法调用匹配
  • 检查在给定的执行中调用了哪些方法以及调用了多少次
PowerMock还特别允许您

  • 模拟静态方法
  • 模拟构造函数
  • 模拟期末班

但是模拟库本身就是java代码,如果您想使用反射重写类似的东西,您可以自己编写。

Powermockito可以访问私有方法。您可以通过反射实现powermockito的许多功能(特别是如果您只是访问一个私有方法),但是powermockito让它变得更容易。我可以通过反射获得必要的数据输出,如果我想做同样的事情,那么我可以使用spring框架引入的反射Util。。但是power mock还能做什么呢?首先,你可以模拟接口(是的,你可以通过代理和反射来实现,但这很难)。您可以模拟静态方法(我不知道如何通过反射实现这一点,可能是不可能的)。你可以模拟调用
new*
时发生的事情(同样,反射可能不可能)。我也可以通过反射访问静态方法。我可能没有说访问,我说的是模拟。也就是说,如果您正在测试的类部分调用了该方法,则更改调用该方法的结果。这对于人为地创建错误(例如,让方法抛出一个
IOException
,而不必破坏您的文件系统)以及其他事情都很有用。