@RunWith(MockitoJUnitRunner.class)和@RunWith(SpringJUnit4ClassRunner.class)何时适当使用它有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (1423)

@RunWith(MockitoJUnitRunner.class)和@RunWith(SpringJUnit4ClassRunner.class)之间的区别是什么时候适当使用它

提问于
用户回答回答于

MockitoJUnitRunner

  • 特别适用于Mockito测试框架
  • 当您希望将测试集中在单个类上并避免在依赖项上调用方法时(而是调用易于配置的模拟/虚拟),Mockito框架可以帮助模拟依赖项。
  • 以上是mockito的用途,但有关此运行的更多内容 - 来自文档:“保持测试清洁并改善调试体验”。“Runner是完全可选的 - 还有其他方法可以让@Mock工作”。来源 - https://static.javadoc.io/org.mockito/mockito-core/2.6.8/org/mockito/junit/MockitoJUnitRunner.html

基于SpringJUnit4ClassRunner

  • 特别适用于弹簧框架
  • 当需要加载spring上下文(创建spring bean,执行依赖注入等)时,用于集成测试。
  • 在集成测试中,您可能无法对依赖项进行尽可能多的模拟,但您可以在同一测试中执行这两项操作。
  • 当您想要测试加载弹簧上下文或者可能从服务/高级别一直测试到较低级别(如使用单个测试的数据访问)时,集成测试非常有用。

在某些情况下,您可能希望同时使用它们 - 比如集成测试,您还希望模拟某些依赖项(可能是它们进行远程调用)。不幸的是你不能使用两个@RunWiths,但这是一个很好的帖子 - jUnit中的多个RunWith语句

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励