何时使用 @RunWith 以及何时使用 @ExtendWith

新手上路,请多包涵

我和我的团队一直在使用 Spring Boot 开发一堆微服务。由于服务经历了 JUnit 和 Spring Boot 升级(我们现在使用的是 Spring Boot 2 和 JUnit 5),不同开发人员实现的不同 JUnit 现在使用不同的模式:

  • @ExtendWith
  • @RunWith

今天,它们两者之间有什么区别?我们真的需要它们来进行单元测试还是嵌入到一些新的 Spring Boot 注释中?

原文由 AR1 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

答案可以在 文档 中找到:

如果您使用的是 JUnit 4,请不要忘记将 @RunWith(SpringRunner.class) 添加到您的测试中,否则注释将被忽略。如果您使用的是 JUnit 5,则无需将等效的 @ExtendWith(SpringExtension.class) 添加为 @SpringBootTest 并且其他 @…Testannotations 已经用它进行了注释

.

原文由 AR1 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您使用的是 Junit 版本 < 5,则必须使用 @RunWith(SpringRunner.class)@RunWith(MockitoJUnitRunner.class) 等。

如果您使用的是 Junit 版本 = 5,那么您必须使用 @ExtendWith(SpringExtension.class)@ExtendWith(MockitoExtension.class) 等。

  1. SpringRunner
  2. MockitoJUnitRunner
  3. 弹簧扩展
  4. 模拟扩展

原文由 TinyOS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Stack Overflow 翻译
子站问答
访问
宣传栏