데이터 구조가 올바르게 구축되었는지 테스트하는 방법은 무엇입니까? 내가 수정 된 기수 트리의 일종을 구현하고, 당신의 데이터 구조가 올바르게 구축되었는지 어떻게 확인하는지 궁금해하고있다.유닛 테스트 적절한 데이터 구조 생성
TreeNode {String, Int}
노드의 트리를 고려하십시오. 당신은 항상 다음 예에서와 같이 0으로 동등한 가치의 깊은 노드에 새 자식을 추가하려면 :
Root, 0 - Child_1, 5 - Child_2, 0 - Child_3, 1
질문은, 어떻게 단위 테스트 당신이 바란대로 트리 구조가 쌓이면? TreeNode는 insert
일 수있는 하나의 메소드 만 가지고 있습니다.
지금까지 생각한 바는 트리를 거쳐 각 노드를 문자열로 변환하는 TreeVisitor
으로 작성했습니다. 나무 위의 예에서, 다음과 같을 수 있습니다 : 내가 삽입있어 어떤 요소 생각이있는 경우 트리를 구축
[Root, 0 [Child_1, 5][Child_2, 0 [Child_3, 1]]]
알고 알고리즘, 나는 수동으로 같은 문자열을 만들 수 있습니다. 내 유닛 테스트는 (같은 예제를 사용하여) 이렇게 보일 것입니다.
TreeNode root = new TreeNode("Root", 0);
root.insert(new TreeNode("Child_1", 5));
root.insert(new TreeNode("Child_2", 0));
root.insert(new TreeNode("Child_3", 1));
TreeVisitor visitor = new TreeVisitor();
String expected = "[Root, 0 [Child_1, 5][Child_2, 0 [Child_3, 1]]]";
asssertEquals(expected, visitor.visit(root));
나는 그것이 최선의 접근 방식이 아니라고 생각했습니다. 방문자가 변경되면 즉시 모든 테스트가 실패합니다 (단순히 [ ]
을 ()
으로 변경). 또한,이 방법을 사용하면 (수동으로 계산할 수있는만큼 큰) 작은 나무를 테스트 할 수 있습니다. 당신은 더 큰 것들을 어떻게 테스트 할 것입니까?
일반적인 질문은 데이터 구조가 올바르게 구축되었는지 확인하는 테스트를 작성하는 방법? 사람들이 아마도 당신이 구현을 대체 할 수