我编写了我的内容提供程序,应该在sqlLite数据库中包装对2个表的访问.现在我想为它编写一些测试用例,但我从未做过.阅读开发者指南中的部分后,我必须说我没有得到任何测试.
下面是我的代码到目前为止.这是测试项目中唯一与我的主项目相对应的类.当我在Eclipse中执行它时,模拟器正确启动,软件包已安装,但它没有运行测试:
Test run Failed: Test run incomplete.
Expected 1 tests,received 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); 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中的断点不会被触发. ?!
我也没有在网上找到太多信息.任何人都可以帮我理解应该如何设置测试(基本上创建一个测试数据库文件,填充一些数据,查询它,……)?