Spring bağımlılık enjeksiyonunu, bir TestExecutionListener sınıfına nasıl uygulayabilirim? AbstractTestExecutionListener uzandı mı?Yay bağımlılığı yayına Spring TestExecutionListeners çalışmıyor
Yay DI, TestExecutionListener sınıflarıyla çalışmaz gibi görünmüyor. Sorunun Örnek:
AbstractTestExecutionListener:
class SimpleClassTestListener extends AbstractTestExecutionListener {
@Autowired
protected String simplefield; // does not work simplefield = null
@Override
public void beforeTestClass(TestContext testContext) throws Exception {
System.out.println("simplefield " + simplefield);
}
}
Yapılandırma dosyası:
@Configuration
@ComponentScan(basePackages = { "com.example*" })
class SimpleConfig {
@Bean
public String simpleField() {
return "simpleField";
}
}
JUnit Testi dosyası:
kod comment vurgulandığı gibi@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { SimpleConfig.class })
@TestExecutionListeners(mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS, listeners = {
SimpleClassTestListener.class })
public class SimpleTest {
@Test
public void test(){
assertTrue();
}
}
, I Bunu çalıştır, "Simplefield null" yazdıracağından, çünkü Simplefield asla g etler bir değer ile enjekte edilir.
Ayrıca yapılandırmada @ComponentScan (basePackages = {"com.example *"}) ekledim. –
TestContext.getApplicationContext(). GetBean (...) kullanmayı sevmiyorum. –
Bu sorunu Spring Boot 1.5.2.RELEASE ile yeni bir projede de görüyorum. –