gpt4 book ai didi

java - 如何模拟 ObjectMapper 的 readValue 方法?

转载 作者:行者123 更新时间:2023-11-29 08:36:23 25 4
gpt4 key购买 nike

我正在尝试模拟 MAPPER.readValue() 但无法获得预期的输出。

private static final ObjectMapper MAPPER = new ObjectMapper();

String res = EntityUtils.toString(response.getEntity());
PartyDetailInfo partyInfo = MAPPER.readValue(res, PartyDetailInfo.class);

if (partyInfo.getXpartyInfo() == null || partyInfo.getXpartyInfo().getXpartyInfoItem() == null
|| partyInfo.getXpartyInfo().getXpartyInfoItem().get(0).getOrigSystemRefs() == null
|| partyInfo.getXpartyInfo().getXpartyInfoItem().get(0).getOrigSystemRefs().getOrigSystemRefsItems()
.isEmpty()) {
BusinessException exception = new BusinessException(Constants.ERROR_PARTY_ID_NOT_EXIST
.replace(Constants.TEMP_ZERO_REPLACE_STRING, partyDetailRequest.getPartyId()));
exception.setErrorCode(Integer.toString(HttpStatus.SC_NOT_FOUND));
throw exception;
}

我试着模拟它,但我得到了 partyInfo = null;

Mockito.when(Mapper.readValue(Mockito.anyString(),Mockito.eq(PartyDetailInfo.class))).thenReturn(getPartyInfoDummy());

这是 getPartyInfoDummy():

private PartyDetailInfo getPartyInfoDummy(){
List<XpartyInfoItem> xpartyInfoItems = new ArrayList<XpartyInfoItem>();

XpartyInfoItem infoItem = new XpartyInfoItem();
OrigSystemRefs origSystemRefs = new OrigSystemRefs();
OrigSystemRefsItem origSystemRefsItem = new OrigSystemRefsItem();
List<OrigSystemRefsItem> origSystemRefsItems = new ArrayList<OrigSystemRefsItem>();
origSystemRefsItem.setOrigSystem("PSFT");
origSystemRefsItem.setOrigSystemReference("PS-47439934");
PrimaryMlsSet primaryMlsSet = new PrimaryMlsSet();
primaryMlsSet.setNil("true");
origSystemRefsItem.setPrimaryMlsSet(primaryMlsSet );
origSystemRefsItems.add(origSystemRefsItem);
origSystemRefs.setOrigSystemRefsItems(origSystemRefsItems );
infoItem.setOrigSystemRefs(origSystemRefs);

xpartyInfoItems.add(infoItem);
PartyDetailInfo partyInfo = new PartyDetailInfo();
XpartyInfo xpartyInfo = new XpartyInfo();

xpartyInfo.setxReturnStatus(null);
xpartyInfo.setxErrMsgs(null);
xpartyInfo.setXpartyInfoItem(xpartyInfoItems);

partyInfo.setXpartyInfo(xpartyInfo);

return partyInfo;
}

我不明白这里出了什么问题?需要帮助。

最佳答案

当你说 Mockito.when(Mapper.readValue请确保映射器是模拟对象,并且模拟映射器设置为您要测试的实例。

关于java - 如何模拟 ObjectMapper 的 readValue 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43867497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com