无法在 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。


撒科打诨
浏览 257回答 1
1回答

长风秋雁

可能是我们混合了 junit4 和 junit5 的导入。@Configuration让我们用( )注释配置类org.springframework.context.annotation.Configuration;。在主要单元测试中,让我们使用以下内容,@ExtendWith(SpringExtension.class)@ContextConfiguration(classes = ServiceTestContextConfiguration.class)而不是@Before,使用@BeforeEach并确保所有导入都来自 junit5(包括断言)import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.assertEquals;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java