【问题标题】:@Autowired Bean is NULL in Spring Boot JUnit Test@Autowired Bean 在 Spring Boot JUnit 测试中为 NULL
【发布时间】:2018-07-19 11:13:55
【问题描述】:

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

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);

请帮忙解决这个问题。

【问题讨论】:

标签: spring-boot intellij-idea junit


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2018-06-15
  • 2020-11-04
  • 1970-01-01
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 2018-02-02
  • 1970-01-01
相关资源
最近更新 更多