0
저는 인스 타 그램의 데이터를 시스템에 매핑하는 독자가 있습니다. Junit 테스트를 수행 할 때 ClassCastException이 발생했습니다. 내 테스트 클래스는 다음과 같은 코드가 있습니다 :ClassCastException : com.fasterxml.jackson.databind.node.MissingNode를 com.fasterxml.jackson.databind.node.ArrayNode로 캐스트 할 수 없습니다.
public class InstagramToJsonMapperTest extends AbstractMapperTest {
private InstagramMapper instagramMapper;
private boolean printResult = true;
@Before
public void setup() {
super.setup();
instagramMapper = new InstagramMapper(128);
}
private void compareJson(String unmapped, String mapped) throws Exception {
JsonNode unmappedJson = loadJson(unmapped);
JsonNode mappedJson = loadJson(mapped);
Message<JsonNode> msg = MessageBuilder.withPayload(unmappedJson).build();
Message<JsonNode> resultMsg = instagramMapper.map(msg);
JsonNode result = resultMsg.getPayload();
if(printResult) {
System.out.println("processed: " + result);
System.out.println("expected: " + mappedJson.toString());
}
Assert.assertTrue(JacksonUtils.equals(result, mappedJson));
}
@Test
public void testPhoto() throws Exception {
compareJson("/mapping/test.json", "/mapping/test_mapped.json");
}
}
오류 때문에 내 매퍼에서이 라인이다 :
String[] branches = JacksonUtils.toArray((ArrayNode) extractor.extract("contentBranch"));
if(branches.length == 1) {
abc.put("contentBranch", branches[0]);
} else {
abc.set("contentBranch", JacksonUtils.arrayToArrayNode(branches));
}
내 문제는, 내가 변경하는 것을 잘 모릅니다. 테스트 파일에서 매퍼 코드 나 코드를 변경해야합니까? 오류 :
ClassCastException: com.fasterxml.jackson.databind.node.MissingNode cannot be
cast to com.fasterxml.jackson.databind.node.Arraynode