@Autowired Bean在Spring Boot JUnit Test中为NULL

时间:2018-02-08 19:07:14

标签: spring-boot intellij-idea junit

我正在尝试为下面的文件编写单元测试用例。

RoleDataController.Java

@RestController
@RequestMapping("/updateRoleData")

public class RoleDataController extends ControllerBase {
    @Autowired
    public EntityManager entityManager;
    public Session session = entityManager.unwrap(Session.class);
    RoleData _roleData = new RoleData();
    @RequestMapping("/getRoleData")
    public String findRoleData(){
        List roleList =_roleData.findRoleData(session,123456);
        return JsonHelper.toJson(roleList);
    }
}

RoleDataControllerTest.java

public class RoleDataControllerTest {
    RoleData _roleData = new RoleData();
    @Autowired
    public EntityManager entityManager;
    public Session session = entityManager.unwrap(Session.class);
    @Test
    public void findRoleData() throws Exception {
        List roleList =_roleData.findRoleData(session, 123456);
        Assert.assertNotNull(roleList);
    }
}

我在下面的行中得到NullPointerException

public Session session = entityManager.unwrap(Session.class);

请帮忙解决这个问题。

1 个答案:

答案 0 :(得分:0)

单元测试不会启动Spring上下文,因此@Autowired注释不会起作用 - Spring不会进行依赖注入。您要么编写集成测试,要么模拟其他bean的行为。