@Autowired annotation not able to inject bean in J

2020-03-30 03:19发布

my test class:

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

I am getting a null pointer exception at line:

Classdata data = beanObject.getMethod();

the beanObject.getMethod(); precisely gives nullpointer exception

How should i make possible the autowiring of the field beanObject in my Junit class so that i can use the methods from the "BeanClass" class?


Copied from Comments:

in plain terms.. beanClass is an interface which has certain methods.. i have tagged that beanClass with @Service("beanObject") annotation..that banClass is implemented by beanClassImpl class which has the method implementations.. i need to use those implementations in my testClass to get the data to be compared.. for that i am doing @Autowired beanClass beanObject in my testClass.. m i going terribly wrong somewhere?

1条回答
▲ chillily
2楼-- · 2020-03-30 03:51

You probably need to decorate your tests with these annotations:

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

Or, if you use JUnit 3.x, you should extend from AbstractJUnit38SpringContextTests

Reference: TestContext support classes

Update: The problem seems to be that the context file can't be found (see discussion in comments).

in plain terms.. beanClass is an interface which has certain methods.. i have tagged that beanClass with @Service("beanObject") annotation..that banClass is implemented by beanClassImpl class which has the method implementations.. i need to use those implementations in my testClass to get the data to be compared.. for that i am doing @Autowired beanClass beanObject in my testClass.. m i going terribly wrong somewhere?

More Updates:

Don't annotate the interface, annotate the implementing class. Annotating the interface with @Service has no effect!

查看更多
登录 后发表回答