我已经写了应该换一个SqlLite数据库访问2代表我的内容提供商定制的ContentProvider。现在我想写一些测试用例,但我从来没有这样做过。在阅读开发者指南的章节后,我必须说我没有设法得到任何测试。测试Android中
下面是我到目前为止的代码。这是测试项目中唯一对应于我的主项目的类。当我在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中的断点不会被触发。 ?!
我也没有在网络上找到很多信息。任何人都可以帮助我理解如何设置测试(基本上创建测试数据库文件,填充一些数据,查询它,...)?
的ArticleProviderTest类的设置方法不叫,甚至没有构造函数。 – 2011-04-30 15:03:19
我编辑了问题并添加了清单。我需要设置除Provider提供程序测试类以外的其他任何内容吗?任何活动呢? – 2011-04-30 15:09:06
上面的CalendarProvider2Test.java链接已损坏。这一个似乎工作:https://android.googlesource.com/platform/packages/providers/CalendarProvider/+/refs/heads/jb-dev/tests/src/com/android/providers/calendar/CalendarProvider2Test.java – treejanitor 2013-05-07 12:05:35