Napisałem, że mój dostawca treści powinien zawijać dostęp do 2 tabel w bazie danych SqlLite. Teraz chciałbym napisać kilka przypadków testowych, ale nigdy tego nie robiłem. Po przeczytaniu sekcji na temat przewodnika dla programistów muszę powiedzieć, że nie udało mi się niczego przetestować.Testowanie niestandardowego dostawcy treści w systemie Android
Poniżej znajduje się mój kod do tej pory. Jest to jedyna klasa w projekcie testowym, która odpowiada mojemu głównemu projektowi. Kiedy wykonać go w Eclipse, emulator uruchamia się poprawnie, pakiety zostaną zainstalowane, ale nie uruchomić test run
Niepowodzenie testu: Test prowadzony niekompletne. Oczekiwany 1 testy, otrzymał 0
Oto klasa Test:
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);
}
}
}
A plik manifestu, czy to pomaga:
<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>
Kiedy uruchomić w konfiguracji debugowania, Punkty przerwania w konstruktorze i w setUp nie są wyzwalane. ?!
Również nie znalazłem zbyt wielu informacji w sieci. Czy ktokolwiek mógłby mi pomóc w zrozumieniu, jak należy przeprowadzić testowanie (w zasadzie utworzyć plik testowej bazy danych, wypełnić go pewnymi danymi, zapytać, ...)?
Metoda setUp klasy ArticleProviderTest nie jest wywoływana, nawet konstruktor. –
Edytowałem pytanie i dodałem również manifest. Czy muszę ustawić coś innego niż klasa testu dostawcy? Każda aktywność również? –
Powyższy odnośnik CalendarProvider2Test.java jest uszkodzony. Ten wydaje się działać: https://android.googlesource.com/platform/packages/providers/CalendarProvider/+/refs/heads/jb-dev/tests/src/com/android/providers/calendar/CalendarProvider2Test.java – treejanitor