Я написал своему поставщику контента, который должен обернуть доступ к 2 таблицам в базе данных SqlLite. Теперь я хотел бы написать несколько тестов для этого, но я никогда не делал этого. Прочитав раздел руководства разработчика, я должен сказать, что мне не удалось ничего проверить.
Ниже приведен мой код. Это единственный класс в тестовом проекте, который соответствует моему основному проекту. Когда я выполняю его в Eclipse, эмулятор запускается правильно, пакеты устанавливаются, но тест не запускается:
Тестовый прогон не выполнен: Тестовый прогон не завершен.
Ожидается 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 не запускаются. ?!
Я также не нашел много информации в сети. Может ли кто-нибудь помочь мне понять, как следует настраивать тестирование (в основном создать тестовый файл базы данных, заполнить его некоторыми данными, запросить его, ...)?