2012-06-25 8 views
0

내 안드로이드 프로젝트 용 테스트 클래스를 코딩하려고하는데 listviews 채우기에 문제가 있습니다.Android 계측 테스트 : ListView 내용이로드되지 않습니다.

내 활성 텐트 구비 값을 선택하여, 애플리케이션 DB에 요청을 수행

final String[] projection = { 
      ... 
      }; 

    final String[] selectionArgs={ 
      String.valueOf(intent_param_1), 
      String.valueOf(intent_param_2) 
    }; 
    final String selection = //.... ; 

    vAdapter = new CustomCursorAdapter(this, R.layout.da_row, null, from, to,0); 

    mListView = new LoaderUtils(vAdapter, projection, selection, selectionArgs, this, uri, null).populateListView(mListView); 

LoaderUtils 클래스 LoaderCallbacks를 구현하고, 그리고 상기 방법 populateListView 어댑터에 DB 데이터를로드하고 결합하는 CursorLoader 사용 내 ListView. 내 응용 프로그램을 실행할 때 제대로 작동하지만 테스트 사례를 구현할 때 몇 가지 문제가 발생합니다.

@Override 
    protected void setUp() throws Exception { 
    super.setUp(); 

    Intent i = new Intent(); 
    i.putExtra("intent_param_1", 1); 
    i.putExtra("intent_param_2", 1); 
    setActivityIntent(i); 

    mActivity = getActivity(); 
    listeActivites = (ListView)mActivity.findViewById(R.id.listview); 
    adapter = (CustomCursorAdapter) listeActivites.getAdapter(); 
    } 

public void testInit(){ 
    Cursor c = adapter.getCursor(); 
      //... 
    } 

내 testInit을 수행 할 때 내가 에뮬레이터에 "진짜"내 응용 프로그램을 실행할 때 그렇지 않은 반면, 어댑터에 의해 반환되는 커서가 비어 있습니다.

내 의도가 잘못 초기화되었거나 테스트 사례가 커서 로더와 함께 작동하지 않는 것이 문제 일 수 있습니까? 그래서 누군가 내가 잘못하고있는 것을 지적 할 수 있다면, 매우 높이 평가 될 것입니다. 감사!

답변

0

이유는 CursorLoader가 아직 완료되지 않았기 때문입니다. 1 초 (올바른 방법이 아닌)의 수면을 추가하면 효과가 있습니다.

저는 현재 CursorLoaders를 사용하여 최상의 활동을 테스트하는 방법을 찾고 있습니다. 잠자기 코드를 추가하고 싶지 않으므로 더 나은 방법이 있어야합니다.

현재 테스트에서 기다릴 수있는 청취자를 추가하려고합니다 ...

관련 문제