내가 단위 테스트에 당신을 줄 수있는 최고의 조언은 첫째 정말를하다 시험 단위가 무엇인지 이해하십시오. 테스트, 특히 단위 테스트를 작성할 때 테스트 단위가 단일 클래스인지 확인합니다. 모든 것이 조롱 받았고, 수업에서 모든 공개 메소드가 그것이 약속 한 바를 따르는 지 확인했습니다.
즉, 묻는 방법은 EVIL UNTESTABLE CODE입니다. 이와 같은 코드가 Google 엔지니어로부터 왔음을 보는 것은 다소 충격적입니다. 내 생각에 짐작할만한 점은 프런트 엔드 웹 개발자 인 이유는 변수가 모두 메서드의 맨 위에 선언 되었기 때문이며 자바 스타일과 null
값을 갖고 있지 않은 모든 로컬 변수를 초기화하면 누구든지 예제 isn't very experienced with Java을 작성했음을 알 수 있습니다.
테스트 가능한 상태로 만드는 방법을 상당히 리팩터링해야합니다. 예를 들어 loadXmlFromNetwork
은 거짓 인 API를 제공합니다. 그것은 네트워크에서 XML을 "로드"하지 않으며, 또한이 작업을 완료 한 후 List<Entry>
으로 파싱합니다.이 항목의 데이터를 HTML 형식의 String으로 밀어 넣은 다음 다시 반환합니다.
이 메서드 만 사용하는 첫 번째 문제는 필요한 개체를 요구하는 대신 자체 내부에 개체를 만드는 것입니다. 논리를 테스트하기 위해 이러한 객체를 모의 할 수 없으므로 테스트에 문제가 발생합니다. 테스트에서는 네트워크 의존성을 만들 필요가 없으므로 HttpURLConnection
을 조롱하고 코드를 실행하기 위해 행동을 조롱하고 싶을 것입니다. 정확한 방향을 가리 키도록
, 구글의 리드 테스트 전도사에서이 비디오를 시청 :
http://www.youtube.com/watch?v=wEhu57pih5w
예를, 그러나 때때로 당신은 구문 분석 형식 파일을 결정하는 사람이의 목적 아니다 post는 일반적인 시나리오에서 누군가의 JUnit (onAndroid) 학습을 향상시키는 것입니다. – eeadev