SpringRunner vs SpringBootTest

2022-08-31 16:32:21

在单元测试中,&@Runwith(SpringRunner.class)@SpringBootTest

你能向我解释一下每个用例吗?


答案 1

@RunWith(春季跑者.class) :您需要此注释来启用弹簧靴功能,例如 等。在朱尼特测试期间@Autowire@MockBean

用于在 Spring Boot 测试功能和 JUnit 之间提供桥梁。每当我们在 JUnit 测试中使用任何 Spring Boot 测试功能时,都需要此注释。

@SpringBootTest :此注释用于加载完整的应用程序上下文,以进行端到端集成测试

@SpringBootTest注释可以在我们需要引导整个容器时使用。注释通过创建将在我们的测试中使用的 ApplicationContext 来工作。

这是一篇关于贝尔东这两种情况的清晰例子的文章


答案 2

@RunWith是JUnit 4的旧注释,用于使用测试运行程序。如果您使用的是 JUnit 5 (Jupiter),则应使用 @ExtendWith 来使用 JUnit 扩展

查看 https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing

“如果您使用的是JUnit 4,请不要忘记在测试中添加@RunWith(SpringRunner.class),否则注释将被忽略。如果您使用的是JUnit 5,则无需将等效的@ExtendWith(SpringExtension.class)添加为@SpringBootTest,而将另一个@...测试批注已用它进行了批注。


推荐