2014-07-08 3 views
0

나는 테스트 초보자입니다. 내 응용 프로그램을 개발할 때 Robotium을 사용하여 응용 프로그램을 테스트했지만 지금은 Util 클래스의 일부 기능을 테스트하고 싶습니다. 예를 들면 :어떻게 이러한 기능을 테스트 하시겠습니까?

public static boolean isTabletDevice(Context context) { 
    if (android.os.Build.VERSION.SDK_INT >= 11) { // honeycomb 
     // test screen size, use reflection because isLayoutSizeAtLeast is 
     // only available since 11 
     Configuration con = context.getResources().getConfiguration(); 
     try { 
      Method mIsLayoutSizeAtLeast = con.getClass().getMethod(
        "isLayoutSizeAtLeast", int.class); 
      Boolean r = (Boolean) mIsLayoutSizeAtLeast.invoke(con, 
        0x00000004); // Configuration.SCREENLAYOUT_SIZE_XLARGE 
      return r; 
     } catch (Exception x) { 
      x.printStackTrace(); 
      return false; 
     } 
    } 
    return false; 
} 

가 어떻게 이러한 기능을 테스트 할 수 있습니다 :

public static boolean internetConnection(Context context) { 
    ConnectivityManager conMgr = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo i = conMgr.getActiveNetworkInfo(); 
    if (i == null) 
     return false; 
    else if (!i.isConnected()) 
     return false; 
    else if (!i.isAvailable()) 
     return false; 

    return true; 
} 

또는 예를 들어

?

감사합니다.

+0

장치가 태블릿인지 확인하는 데는 여러 가지 간단한 방법이 있습니다. http://stackoverflow.com/questions/5832368/tablet-or-phone-android를 참조하십시오. –

답변

2

처음에는 연결 관리자를 스텁/모의해야합니다.

연결 관리자가 생성 할 수있는 모든 조건을 시뮬레이트하고 메서드가 각각 적절한 값을 반환하는지 확인하십시오. 중첩 된 else if 문 대신 값만 반환 할 수 있습니다. IMO를 사용하면 코드를 좀 더 깔끔하고 쉽게 생각할 수 있습니다.

두 번째로는 안드로이드 전화가 당신이 제공하는 가치에 대해 작동하는지 확인했기 때문에 걱정하지 않아도됩니다. – 구체적으로 테스트 할 내용을 설명해야합니다. 그 반사 작용? 올바른 크기로 부르기를 원하십니까?

관련 문제