2017-02-13 11 views
5

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.

+0

Ayrıca yapılandırmada @ComponentScan (basePackages = {"com.example *"}) ekledim. –

+0

TestContext.getApplicationContext(). GetBean (...) kullanmayı sevmiyorum. –

+0

Bu sorunu Spring Boot 1.5.2.RELEASE ile yeni bir projede de görüyorum. –

cevap

İlgili konular