2011-01-20 20 views
2

我的測試類:@Autowired註解不能在JUnit類注入豆

public class myTest extends TestCase{ 
@Autowired 
BeanClass beanObject 
public void beanTest() 
{ 
Classdata data = beanObject.getMethod(); 
} 
} 

我得到一個空指針異常在行:

Classdata data = beanObject.getMethod(); 

beanObject.getMethod();恰恰給了空指針異常

我應該如何使字段beanObject在我的Junit類中自動裝配,以便我可以使用「BeanClass」類中的方法?


從評論複製:

純術語

.. beanClass是 接口,其具有某些方法.. 我已標記的是與beanClass @Service("beanObject") annotation..that banClass是 由beanClassImpl類 實施,其中有方法實現.. 我需要使用那些實現 我的testClass獲取數據爲 比較..因爲我在做 @Autowired beanClass beanObject在 我testClass ..我要去可怕 錯誤的地方?

+1

Spring應該從哪裏得到`beanObject`?你有沒有宣佈它? – skaffman 2011-01-20 10:48:30

+0

beanObject已經是一個beanClass對象,我已經將beanClass聲明爲@Service(「beanObject」)註釋。 – alpesh003 2011-01-20 11:00:46

回答

4

您可能需要使用這些註解來裝飾你的測試:

@ContextConfiguration(locations = {/* your xml locations here */}) 
@RunWith(SpringJUnit4ClassRunner.class) 

或者,如果您使用JUnit 3.x中,你應該從AbstractJUnit38SpringContextTests

參考擴展:TestContext support classes

更新:問題似乎是上下文文件不能爲fo und(見評論中的討論)。

純術語

.. beanClass是 接口,其具有某些方法.. 我已標記的是與beanClass @Service( 「beanObject」) annotation..that banClass是 由beanClassImpl 類實現它有方法實現.. 我需要使用這些實現在 我TestClass中得到的數據是 相比..對於我在我 TestClass中..英里去可怕的錯誤 地方做 @Autowired beanClass beanObject ?

更多更新:

不要註釋接口,批註實現類。用@Service註解界面沒有任何作用!