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

4
"

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

"
1个回答

5

MockitoJUnitRunner

  • 专为与Mockito测试框架一起使用而设计。
  • Mockito框架有助于模拟依赖项,当您想将测试集中在单个类上并避免在依赖项上调用方法时(而是调用易于配置的模拟/虚拟对象)。
  • 上述是Mockito的用途,但关于此特定的Runner,从文档中可以看到:“保持测试清洁并改进调试体验”。“Runner是完全可选的 - 还有其他方式可以让@Mock工作”。来源-https://static.javadoc.io/org.mockito/mockito-core/2.6.8/org/mockito/junit/MockitoJUnitRunner.html

SpringJunit4ClassRunner

  • 专为与Spring框架一起使用而设计。
  • 在需要加载Spring上下文(创建Spring bean、执行依赖注入等)时,用于集成测试。
  • 在集成测试中,您可能不会进行太多依赖项的模拟,但您可以在同一个测试中同时进行两者。
  • 集成测试很有用,当您想要测试加载Spring上下文或者从服务/高级别测试一直到比如数据访问等较低级别的测试。

在某些情况下,您可能希望两者都使用 - 比如要进行集成测试,同时也想模拟一些依赖项(也许需要进行远程调用)。不幸的是,您不能使用两个@RunWith,但这是一个关于此的好帖子-Multiple RunWith Statements in jUnit


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接