@Autowired注释无法在JUnit类中注入bean

时间:2011-01-20 10:43:59

标签: java spring junit

我的考试班:

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

我在第一行得到一个空指针异常:

Classdata data = beanObject.getMethod();

beanObject.getMethod();精确地给出了空指针异常

我应该如何使我的Junit类中的字段beanObject自动装配,以便我可以使用“BeanClass”类中的方法?


复制自评论:

  

简单来说.. beanClass是一个   具有一定方法的界面..   我用bean标记了那个beanClass   @Service("beanObject")   注释.. banClass是   由beanClassImpl类实现   其中有方法实现..   我需要使用这些实现   我的testClass来获取数据   我正在做的比较..   中的@Autowired beanClass beanObject   我的testClass ..我的表现非常糟糕   某处错了?

1 个答案:

答案 0 :(得分:4)

您可能需要使用这些注释来装饰您的测试:

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

或者,如果您使用JUnit 3.x,则应从AbstractJUnit38SpringContextTests

延伸

参考: TestContext support classes

更新:问题似乎是无法找到上下文文件(请参阅评论中的讨论)。

  

简单来说.. beanClass是一个   具有一定方法的界面..   我用bean标记了那个beanClass   @Service( “beanObject”)   注释.. banClass是   由beanClassImpl类实现   其中有方法实现..   我需要使用这些实现   我的testClass来获取数据   我正在做的比较..   @Autowired beanClass beanObject in my   testClass ..我非常错误   某处?

更新更新:

不要注释接口,注释实现类。使用@Service注释界面无效!