繁体   English   中英

Spring Controller 单元测试

[英]Spring Controller Unit Test

我正在使用 Spring 引导、Spring 数据 JPA 和 Z8965A291ED0E8481A10298E1C3D

实体中的所有 ID 均由 DB ( @GeneratedValue ) 自动生成。

所以所有实体都不包含任何用于初始化 ID 的constructorssetter methods

当我为控制器( @WebMvcTest )实施单元测试时,所有实体的 id 都是null

问题是某些端点会响应 id,所以当我为它们实现单元测试时,它们会响应null ,即测试失败。

如何为响应 DB 生成的 ID 的控制器实施单元测试?

您可以向 class 添加 Getter 方法,然后使用ObjectMapper设置 id 字段。

Employee employee = new ObjectMapper().readValue(""{\"id\": \"1\"}", Employee.class);

其他方法是在 JUnit 中使用反射来设置该字段。

    Employee employee = new Employee();

    Field field = Employee.class.getDeclaredField("id");
    field.setAccessible(true);
    field.set(employee, "1");

其他使用反射的方法: 访问 junit 测试的私有字段

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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