有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在junit 5中使用@ContextConfiguration创建用于测试的bean

我正在尝试为我的应用程序编写junit测试用例。在使用Junit 5之后,我无法使用@ContextConfiguration创建必要的bean

它没有抛出任何错误。但是在测试类中自动连接bean时,我得到了空值

我添加了以下依赖项

testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.0"
testCompile('org.junit.jupiter:junit-jupiter-params:5.3.0')
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.3.0"

还有我的密码

@ContextConfiguration(classes = ServiceTestContextConfiguration.class)
public class ApplicationConfigTest {

@Autowired
private ApplicationServiceConfiguration 

应用服务配置

@ContextConfiguration
public class ServiceTestContextConfiguration {
@Bean
public ApplicationServiceConfiguration applicationServiceConfiguration() {
    return new ApplicationServiceConfiguration();
}

我用的是spring boot 2


共 (1) 个答案

  1. # 1 楼答案

    也许我们混合了进口的junit4和junit5。让我们用@Configurationorg.springframework.context.annotation.Configuration;)注释配置类

    在主单元测试中,让我们使用以下内容:

    @ExtendWith(SpringExtension.class)
    @ContextConfiguration(classes = ServiceTestContextConfiguration.class)
    

    使用@BeforeEach而不是@Before,并确保所有导入都来自junit5(包括断言)

    import org.junit.jupiter.api.BeforeEach;
    import org.junit.jupiter.api.Test;
    
    import static org.junit.jupiter.api.Assertions.assertEquals;