我目前正在编写一个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
中的值进行断言。如果必须进行序列化,那么我只能想到上面的替代方法。