mockito & powermock & powermockito 之间有什么联系和区别?

What's the connection & difference between mockito & powermock & powermockito?

研究了mockito测试框架,学习了powermock,突然发现一个叫powermockito的框架,看不懂了。

谁能告诉我这三个测试工具的区别?

  1. Mockito 是市场标准的模拟框架,味道非常好。它提供了许多功能,如模拟、存根、验证方法调用等。在以前的版本中,它不提供模拟私有或静态方法的可能性(这里是解释原因:https://github.com/mockito/mockito/wiki/Mockito-And-Private-Methods)。比真正有用的是
  2. Powermock 使用自定义类加载器和字节码操作来模拟静态方法、构造函数、final 类 和方法、私有方法、删除静态初始化器等。但是,当您必须使用 Powermock 时,您的应用程序设计可能很差
  3. 我从未使用过 PowerMockito,但它是 PowerMock 的扩展 API 以支持 Mockito。它提供了以简单的方式使用 Java 反射 API 的功能,以克服 Mockito 的问题,例如缺乏模拟最终、静态或私有方法的能力。

但是现在(从 mockito 3.4 开始)有可能模拟静态方法——而不是限制 PowerMock 的使用。这是一个很好的博客 post 关于它 https://tech.cognifide.com/blog/2020/mocking-static-methods-made-possible-in-mockito-3.4.0/