How can I use Spring dependency injection in the TestExecutionListener class that I wrote extending AbstractTestExecutionListener?
Spring DI doesn't seem to work with TestExecutionListener classes. Example problem:
Function AbstractTestExecutionListener:
class SimpleClassTestListener extends AbstractTestExecutionListener { @Autowired protected String simplefield;
Configuration file:
@Configuration @ComponentScan(basePackages = { "com.example*" }) class SimpleConfig { @Bean public String simpleField() { return "simpleField"; } }
JUnit Test File:
@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(); } }
As stated in the code comment, when I ran this, it will print “simplefield null” because simplefield never gets an injection with a value.
source share