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

时间:2019-06-24 13:52:05

标签: java junit mockito

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

1 个答案:

答案 0 :(得分:0)

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上下文(创建spring bean,执行依赖注入等)时,用于集成测试。
  • 在集成测试中,您可能不会做太多的依赖关系模拟,但是您可以在同一测试中同时做这两项。
  • 当您要测试加载spring上下文或从服务/高层一直测试到较低层(例如通过单个测试访问数据)时,集成测试很有用。

在某些情况下,您可能要同时使用两者-像集成测试一样,您还希望模拟某些依赖项(也许它们进行远程调用)。不幸的是,您不能使用两个@RunWiths,但这是一个很好的帖子-Multiple RunWith Statements in jUnit