Spring JUnit テスター クラスがありMySimpleTester
ます。
@
RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/spring/mySimpleConfig.xml"})
public class MySimpleTester {
@Before
public void setUp() throws Exception {
myAdapter = (MyAdapter) applicationContext.getBean("myAdapter");
}
@test
public void testGetSimpleList() {
List<SimpleLink> simpleList = **myAdapter.getSimpleLinksList**();
}
... ... ...
私が持っているアダプタクラスでは:
public MyAdapter {
public List<SimpleLink> getSimpleLinksList() {
List<SimpleLink> simLinks = null;
String environment = AppFactory.getPropertiesObj();
... ... ...
class AppFactory implements ApplicationContextAware {
private static ApplicationContext context;
public void setApplicationContext(ApplicationContext acontext) {
context = acontext;
}
public getPropertiesObj() {
return getAppContext().getBean("propertiesBean");
}
私NullPointerException
はそれApplicationContext
がNull
ここにあることを理解しています。
ただし、SpringJUnitTestRunner
クラスMySimpleTester
では、applicationContext が正しく初期化されていることがわかりました。mySimpleConfig.xml
および インクルード ファイルは含めません。MyAdapter
アプリケーション サーバーで実行すると、クラス内のメソッドgetSimpleLinksList()
は Web アプリケーションから完全に正常に動作し、そこで appcontext が取得されます。
AppFactory
を介して静的に呼び出されるため、Spring テスターからのみ、静的アプリケーション コンテキスト クラスに到達できませんAppFactory.getPropertiesObj()
。他のテストクラスが実行されているため、クラスパスを正しく設定しました。