Spring 3.1.0.RELEASE と JUnit 4.8.1 を使用しています。クラスのメンバー フィールドが JUnit テストで自動配線されない理由がわかりません。私のテストは次のようになります...
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "file:src/test/resources/testApplicationContext.xml" })
@TransactionConfiguration(defaultRollback=true)
@Transactional
public abstract class NowYouKnowEventsParserTest {
private EventFeed eventFeed;
@Before
public void setUp() {
eventFeed = getEventFeed(16);
} // setUp
@Test
public void testParser() {
Assert.assertNotSame(0, eventFeed.getEvents().size());
} // testParser
...
@Autowired
private EventFeedsDao eventFeedsDao;
protected EventFeed getEventFeed(final Integer id) {
return eventFeedsDao.findById(id);
} // getEventFeed
}
クラス「EventFeed」は、以下のクラスのインスタンスを呼び出します...
package com.myco.myproject.parsers;
...
public abstract class AbstractEventParser {
@Autowired
protected NetUtilsService netUtilsService;
...
}
しかし、時間になると、AbstractEventParser の「netUtilsService」メンバー フィールドは null になります。私の「testApplicationContext.xml」ファイルには、これがあり、自動配線を処理すると思っていたので、これは奇妙です...
<mvc:annotation-driven />
<context:component-scan base-package="com.myco.myproject" />
JUnit テストで自動配線を強制するにはどうすればよいですか? メンバー フィールドのセッター メソッドを追加して呼び出すことはしたくありませんが、それが唯一の方法である場合は、それで構いません。