无法在junit 5

时间:2019-06-27 10:42:25

标签: java spring-boot junit5

我正在尝试为我的应用程序编写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 

applicationServiceConfiguration;

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

我正在使用spring-boot 2。

1 个答案:

答案 0 :(得分:1)

也许我们将junit4的进口与junit5混合了。让我们用@Configurationorg.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;