问题描述
我有一个集成测试,该测试使用了测试帮助程序类。当前,我使用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?