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

标签 mockito

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

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

最佳答案

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

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

关于mockito - mockito & powermock & powermockito 之间有什么联系和区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64112715/

相关文章:

unit-testing - 使用相同的参数链接多个调用以返回不同的结果

java - 测试包含接口(interface)调用的抽象类的具体方法

java - 测试具有带参数的构造函数的抽象类

java - 使用 PowerMock 时出现 ExceptionInInitializerError

unit-testing - mockito-core 与 mockito-inline 之间的区别

java - Mockito - InjectMocks 或如何在方法调用后获取新值

java - 初始化模拟对象 - Mockito

java - 如何使用 Mockito 验证带有枚举参数的方法调用?

java - 如果从 Mockito.doAnswer(...) 调用,为什么 Mockito.when(...).doReturn(...) 不能按预期工作

mockito - 在Kotlin中,模拟类不能等于其Java类吗?