2011-01-20 25 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注解界面没有任何作用!