微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将Spring bean添加到Spring Boot测试类中?

如何解决如何将Spring bean添加到Spring Boot测试类中?

我有一个集成测试,该测试使用了测试帮助程序类。当前,我使用junit BeforeEach方法创建此测试帮助程序类:

@AutoConfiguremockmvc
@SpringBoottest
public class EmployeeControllerIT {

    @Autowired
    private mockmvc mockmvc;
    
    private TestHelper testHelper;

    @BeforeEach
    public void setup() {
        this.testHelper = new TestHelper();
    }

    ...
}

但是,考虑到我正在使用Spring,我想使用依赖注入。如何将TestHelper添加到应用程序上下文中,以便可以如下自动进行接线:

@AutoConfiguremockmvc
@SpringBoottest
public class EmployeeControllerIT {

    @Autowired
    private mockmvc mockmvc;
    
    @Autowired
    private TestHelper testHelper;

    ....
}

解决方法

不是在TestHelper方法中初始化@BeforeEach,而是添加一个用@TestConfiguration注释的静态内部类,并将TestHelper声明为bean:

@AutoConfigureMockMvc
@SpringBootTest
public class EmployeeControllerIT {

    @Autowired
    private MockMvc mockMvc;
    
    @Autowired
    private TestHelper testHelper;

    @TestConfiguration
    public static class TestConfig {
        @Bean
        public TestHelper testHelper(SomeClass someClass) {
            return new TestHelper(someClass);
        }
    }

    ...
}
,

您是否尝试过使用@Component注释TestHelper?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。