Objectmapper.writeValueAsString 返回 null

问题描述 投票:0回答:1

我正在使用 Junit 和 Mockito 对服务类进行单元测试

我在测试类中模拟了ObjectMapper,如下所示

@Mock
private ObjectMapper objectMapper;

@SuppressWarnings("deprecation")
@BeforeEach
public void setUp() {
MockitoAnnotations.initMocks(this);
}

然后调用实际的类方法, 我正在使用 fastxml.jackson.databind.ObjectMapper。

服务类中的实际代码

Map<String, String> ackMessage = new HashMap();
ackMessage.put("ID", "123");
String **json** = objectMapper.writeValueAsString(ackMessage);

但是这个 json 字符串在调试时变得为空

我已经在我的服务类中自动装配了对象映射器,

@Autowired 对象映射器 对象映射器;

下面的代码是我如何获取ObjectMapper

@Bean
public ObjectMapper getObjectMapper() {
return new ObjectMapper();
}
unit-testing junit mockito jackson-databind objectmapper
1个回答
0
投票

我也遇到过同样的问题。我解决了删除 @Mock 注释并初始化变量的问题。

之前:

@Mock
private final ObjectMapper objectMapper;

之后:

 private final ObjectMapper objectMapper = new ObjectMapper();
© www.soinside.com 2019 - 2024. All rights reserved.