我正在使用 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();
}
我也遇到过同样的问题。我解决了删除 @Mock 注释并初始化变量的问题。
之前:
@Mock
private final ObjectMapper objectMapper;
之后:
private final ObjectMapper objectMapper = new ObjectMapper();