SqlLite 데이터베이스에서 2 개의 테이블에 대한 액세스를 래핑하는 컨텐츠 공급자를 작성했습니다. 지금은 몇 가지 테스트 사례를 작성하고 싶지만 결코 해보지 않았습니다. 개발자 가이드 섹션을 읽은 후에는 테스트를 거치지는 못했다고합니다.Android에서 사용자 정의 ContentProvider 테스트
아래 코드는 지금까지입니다. 이것은 내 프로젝트에 해당하는 테스트 프로젝트의 유일한 클래스입니다. 이클립스에서 그것을 실행하면 에뮬레이터가 제대로 시작하는 패키지가 설치 얻을하지만 테스트를 실행하지 않습니다
테스트 실행 실패 : 테스트가 완료되지 실행합니다. (1 개) 시험 예상 는, 여기에 0을
을받은 테스트 클래스입니다 :
public class ArticleProviderTest extends ProviderTestCase2<ArticleProvider> {
static final Uri[] validUris = new Uri[] { Articles.CONTENT_URI,
Pictures.CONTENT_URI,
Pictures.getContentUriForArticleId(1) };
public ArticleProviderTest(Class<ArticleProvider> providerClass, String providerAuthority) {
super(providerClass, providerAuthority);
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
public void testQuery() {
ContentProvider provider = getProvider();
for (Uri uri : validUris) {
Cursor cursor = provider.query(uri, null, null, null, null);
assertNotNull(cursor);
}
}
}
그리고 매니페스트 파일, 도움이된다면 :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.marvinlabs.xxxx"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<instrumentation android:targetPackage="fr.marvinlabs.xxxx" android:name="android.test.InstrumentationTestRunner" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
</application>
</manifest>
내가 디버그 구성에 시작, 생성자와 setUp의 중단 점이 트리거되지 않습니다. ?!
그물에 대한 많은 정보도 찾지 못했습니다. 아무도 내가 테스트를 설치하는 방법에 대한 이해를 얻을 수 있었습니까 (기본적으로 테스트 데이터베이스 파일을 작성하고, 일부 데이터로 채우고, 쿼리하십시오 ...)?
ArticleProviderTest 클래스의 setUp 메소드는 생성자조차 호출되지 않습니다. –
질문을 편집하고 매니페스트도 추가했습니다. Provider 테스트 클래스 이외에 다른 설정을해야합니까? 어떤 활동도? –
위의 CalendarProvider2Test.java 링크가 끊어졌습니다. 이 하나가 작동하는 것 : https://android.googlesource.com/platform/packages/providers/CalendarProvider/+/refs/heads/jb-dev/tests/src/com/android/providers/calendar/CalendarProvider2Test.java – treejanitor