简体   繁体   中英

@Autowired annotation not able to inject bean in JUnit class

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.. mi going terribly wrong somewhere?

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.. mi going terribly wrong somewhere?

More Updates:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM