2011-10-19 2 views
2

Tree supersizeMe(Tree input) 메서드가 있다고 가정하십시오. 입력 값과 반환 값은 모두 재귀 적 데이터 구조이며이 메서드는 크기 계수가 약 500 인 구조체를 반환합니다. 따라서 input이 가능한 가장 작은 요소이면 함수의 반환 값에 약 500 개의 요소가 포함됩니다.대형 데이터 구조에 대한 단위 테스트 작성

이것은 현재 가지고있는 상황에 대한 간단한 설명이며 단위 테스트를 작성해야합니다. 물론 최소 출력 크기가 ~ 500 개 요소인데, 나는 assert -statements에 내 테스트를 기반으로 할 수 없습니다. 그래서 여기 내 질문 :

그런 방법을 테스트하는 좋은 생각은 무엇입니까?

추신 : 출력을 외부 프로그램을 통해 수동으로 확인할 수 있습니다. 이러한 기능은 API에 포함되어 있지만 이러한 클래스를 사용하면 단위 테스트 아이디어와 충돌하지 않습니까?

편집 : API는 java로 개발되었으며 테스트를 위해 jUnit4를 사용합니다.

+0

사용중인 언어 및 테스트 프레임 워크는 무엇입니까? – utapyngo

+0

그 정보를 질문에 추가했습니다. 답변이 java 나 jUnit에만 해당된다면, 저와 완벽하게 잘 맞습니다. 그런 클래스를 테스트하는 일반적인 개념을 선호합니다. –

답변

4

하지만 이러한 클래스를 사용하면 단위 테스트 아이디어와 충돌하지 않습니까?

단위 테스트의 아이디어는 단일 코드 단위를 개별적으로 테스트한다는 것입니다. 정확성을 검증하기 위해 복잡한 써드 파티 코드를 어떻게 사용하는지는 알지 못합니다.

진정한 질문은 변환 자체가 문제가있는 곳에서 실패한 테스트가 좋은 아이디어를 줄만큼 간단한 작업인지 여부입니다. 그렇지 않은 경우 독립적으로 테스트 할 수있는 작은 작업으로 나누고 싶을 수 있습니다.

즉각적이고 완벽하게 이해할 수없는 테스트를 요구하며 문제가되는 코드 줄이 실제 단위 테스트가 아니며 제 3 자 API를 사용하는 것이 허용되지 않는다고 정확하게 알리는 TDD 순수 주의자가있을 수 있습니다 ,하지만 그들은 당신이 일하고 테스트 한 코드를 즐기면서 도그마를 빨아 먹을 수 있습니다.

+0

답변 해 주셔서 감사합니다! 제 3 자 코드에 대해 당신이 맞다고 생각합니다; 나는 어쨌든 그 독립을 테스트해야 할 것입니다. –

관련 문제