猿问

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

我想在我的jUnit 5测试类中使用


@SpringBootTest

@RunWith(JUnitPlatform.class)

@ActiveProfiles("localtest")

class WorkreportDbRepositoryTest {


  @Autowired

  private SystemPriceSettingService systemPriceSettingService;


// the rest omitted .... 


}

在用于测试环境的配置中创建的 bean:


@Profile("localtest")

@Configuration

public class TestConfig {


  @Bean

  public SystemPriceSettingService systemPriceSettingService(){

    return new MemoryPriceSettingService();

  }


}

但是SystemPriceSettingServicebean没有被注入。我的设置有什么问题?


智慧大石
浏览 219回答 1
1回答

长风秋雁

您不使用支持 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>&nbsp; &nbsp; <groupId>org.mockito</groupId>&nbsp; &nbsp; <artifactId>mockito-junit-jupiter</artifactId>&nbsp; &nbsp; <version>2.18.0</version> <!-- your mockito version-->&nbsp; &nbsp; <scope>test</scope></dependency>
随时随地看视频慕课网APP

相关分类

Java
我要回答