为了账号安全,请及时绑定邮箱和手机立即绑定

未注入 JUnit 5 测试类中测试配置文件中的 Spring bean

未注入 JUnit 5 测试类中测试配置文件中的 Spring bean

智慧大石 2022-01-06 17:01:30
我想在我的jUnit 5测试类中使用@SpringBootTest@RunWith(JUnitPlatform.class)@ActiveProfiles("localtest")class WorkreportDbRepositoryTest {  @Autowired  private SystemPriceSettingService systemPriceSettingService;// the rest omitted .... }在用于测试环境的配置中创建的 bean:@Profile("localtest")@Configurationpublic class TestConfig {  @Bean  public SystemPriceSettingService systemPriceSettingService(){    return new MemoryPriceSettingService();  }}但是SystemPriceSettingServicebean没有被注入。我的设置有什么问题?
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

您不使用支持 Spring 的 JUnit Runner。所以没有创建 Spring 上下文。

您应该将其替换为测试类上的注释,例如:


import org.junit.jupiter.api.extension.ExtendWith;

import org.springframework.test.context.junit.jupiter.SpringExtension;


@SpringBootTest

@ExtendWith(SpringExtension.class)

@ActiveProfiles("localtest")

class WorkreportDbRepositoryTest { ...}

并添加此依赖项以便能够使用SpringExtension:


<dependency>

    <groupId>org.mockito</groupId>

    <artifactId>mockito-junit-jupiter</artifactId>

    <version>2.18.0</version> <!-- your mockito version-->

    <scope>test</scope>

</dependency>


查看完整回答
反对 回复 2022-01-06
  • 1 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信