何时使用@ExtendWith(SpringExtension.class)和@SpringBootTest测试类

问题描述 投票:0回答:1

我目前想知道两者之间的真正区别是什么 这段代码

import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.test.context.junit.jupiter.SpringExtension;

@ExtendWith(SpringExtension.class)
public class TestClass1 {
    
    // some code

}

这个..

import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class TestClass2 {
    
    // some code

}

我们可以在第一个代码中做什么而在第二个代码片段中不能做什么? 反之亦然: 我们可以在第二个代码中做哪些在第一个代码片段中不能做的事情?

对我来说,在这两种情况下,我们都可以:

  • 使用 Spring 上下文
  • 与junit一起工作

所以..有什么区别?

spring testing junit annotations
1个回答
0
投票

你需要知道的一切

@ExtendWith(SpringExtension.class)

  1. 用于运行集成测试并加载 Spring TestContext
  2. JUnit 注释也可以使用
  3. 在配置方面不是一个丰富的 API

@SpringBootTest

  1. 用于运行集成测试并加载Spring TestContext

  2. JUnit 注释也可以使用

  3. 提供丰富的API来配置测试配置

  4. 推荐,因为它支持新功能并且使用简单

© www.soinside.com 2019 - 2024. All rights reserved.