[英]@Autowired not able to inject bean in class under test
我正在对一个类进行单元测试,该类包含一个由弹簧@Autowired
的变量。 但是,当我运行测试时,我得到一个NullPointerException
指示对象userDetailsLoader
为null。
以下是我所拥有的:
public class UserService {
@Autowired
UserDetailsLoader userDetailsLoader;
public void doSomething (){...}
}
JUnit测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class UserServiceTest {
UserService service = new UserService();
@Test
public void testDoSomething() {...}
}
UserServiceTest-context.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="userDetailsLoader" class="my.package.UserDetailsLoader" />
</beans>
配置文件已正确命名,并且没有FileNotFoundException
。 谁能在这里看到问题?
先感谢您。
嗯,我想我周一只是愚蠢,仍然从周末结束后恢复。
问题很简单明了。 我正在创建一个不受Spring管理的bean,因为我编写了UserService service = new UserService();
在测试中。 为了通过弹簧注入豆子,春天必须意识到它并且具有相关的信息。 在我的情况下,我有配置就绪(相关信息),但bean不是由Spring注入的(不是@Autowired
)。
总之,更改UserService service = new UserService();
至
@Autowired UserService service;
解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.