2011-11-10 2 views
0

필자는 jUnit 테스트를 작성하는 데 완전히 멍청하다. 나는 안드로이드 프로그램을 가지고 있고 그것에 대한 테스트를 작성해야한다. Robium으로 테스트를 작성하는 방법을 알고 있지만, 이제는 기능 테스트가 필요하며 어디서부터 시작해야하지 않습니까. 내 코드에서 하나의 함수가 있습니다.안드로이드 jUnit 기능 테스트 작성 방법

private void onCoordinatesUpdate(Location loc){ 
    List<Event> list = wc.requestEvents(loc.getLatitude(), loc.getLongitude()); 
    if(list != null){ 
     adapter = new EventsArrayAdapter(this.getApplicationContext(), R.id.eventsView, (ArrayList<Event>)list); 
     ev.setAdapter(adapter); 
    } 
} 

필자는이를 위해 테스트를 작성해야합니다. 저에게 문제가되는 것은, IF 문장의 표현식이 "list! = null"에서 "list == null"로 바뀌는 지 여부를 감지하는 test를 작성하는 방법을 모른다는 것입니다. 내가 생각할 수있는 테스트의 유일한 생각은 이것이다 :

public void testCheckInternet(){ 
    assertTrue(mClassToTest.checkInternet()); 
} 

그러나 장치가 인터넷에 연결되어 있고 그게의 경우에만 검사 그의 시험. 나는 나를 위해 시험을 쓰는 사람이 필요하지 않지만, 어쩌면 누군가 내게 방법을 보여줄 수 없다 :) 시작하는 방법 :) 감사합니다.

답변

0

개인이며 결과적으로 JUnit으로 테스트하기가 어렵습니다. JUnit으로 단위 테스트를 수행 할 때는 public 메소드 만 테스트하면됩니다. 개인 메서드는 간접적으로 테스트됩니다. 클래스에 명시 적으로 테스트하려는 개인 메서드가있는 경우 클래스 디자인을 다시 생각해 봐야합니다. 한 가지 해결책은이 개인 메서드를 새 클래스로 추출하여 메서드를 public으로 만드는 것입니다.

일반적으로 테스트 할 수있는 코드가 있으며 그렇지 않은 코드가 있습니다. 테스트 구동 개발은 테스트 가능한 코드를 디자인하는 데 도움이되는 기술입니다. 좋은 출발점은 the JUnit documentation입니다.

1

Android 개발자 가이드의 Testing 섹션을 참조하십시오.

+0

사실 나는이 모든 것을 읽었으며 테스트의 작동 방식을 이해합니다. 문제는 IF 조건 또는 예를 들어 FOR 사이클의 초기 값을 검사하는 테스트를 작성하는 방법을 이해하지 못한다는 것입니다. 인터넷에서 샘플을 찾을 수 없습니다. 예제가 필요합니다. – JNM

+0

내가 위에서 준 것처럼 읽으십시오. 그것에 예제가 있습니다. –