繁体   English   中英

@Autowired无法在测试中的类中注入bean

[英]@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.

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