5
Spring依存性注入をTestExecutionListenerクラスに使用するにはどうすればよいですか?AbstractTestExecutionListenerを拡張して記述しましたか?SpringへのSpring依存性注入TestExecutionListenerが機能しない
Spring DIがTestExecutionListenerクラスで動作しないようです。問題の 例:
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);
}
}
設定ファイル:
@Configuration
@ComponentScan(basePackages = { "com.example*" })
class SimpleConfig {
@Bean
public String simpleField() {
return "simpleField";
}
}
JUnitテストファイル:
コードコメントで強調されているよう@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をシンプルフィールドは決してgではないので、これを実行すると、 "simplefield null"が出力されますetsに値を挿入します。
また、構成に@ComponentScan(basePackages = {"com.example *"})を追加しました。 –
私はtestContext.getApplicationContext()。getBean(...)を使いたくありません。 –
私はこの問題もSpring Boot 1.5.2.RELEASEの新しいプロジェクトで見ています。 –