我目前正在编写一个REST控制器,旨在使用Spring Boot处理用户配置文件/活动。
对于生产环境,我目前使用以下命令在响应中隐藏了用户密码:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;


但是,当我编写集成测试并向控制器发出http请求时,我想序列化我的用户对象,但要包含密码,以便我可以测试诸如注册新用户的功能。使用以下命令完成此操作:

@Autowired
private ObjectMapper objectMapper;
...
objectMapper.writeValueAsString(user);


是否有我可以使用的测试注释,或者有其他可用的序列化方法将忽略@JsonProperty注释并允许密码进行序列化?

最佳答案

我不知道您可以采取任何方式。我能想到的唯一可能的事情是让一个interface带有2个配置文件类来实现它,一个不带有该JsonProperty,另一个带有。使用@Profile注释切换它们

如果不是必须进行序列化,则仍可以使用getter中的值进行断言。如果必须进行序列化,那么我只能想到上面的替代方法。

09-04 19:31
查看更多