写好了数据库的代码,进行单元测试
FriendInfoDAOTest.java
package com.example.sqlite.activity;
import java.util.List;
import com.example.sqlite.dao.FriendInfoDAO;
import com.example.sqlite.model.FriendInfo;
import android.test.AndroidTestCase;
import android.util.Log;
public class FriendInfoDAOTest extends AndroidTestCase
{
private final static String TAG="FriendInfoDAOTest";
public void testAdd()
{
FriendInfoDAO FriendInfoDAO=new FriendInfoDAO(this.getContext());
FriendInfo FriendInfo=new FriendInfo(001,"GuGuTian","男生","代码","1993-06-22","sd/images");
FriendInfoDAO.add(FriendInfo);
Log.i(TAG, "add successed");
}
public void testUpdate()
{
FriendInfoDAO FriendInfoDAO=new FriendInfoDAO(this.getContext());
FriendInfo FriendInfo=FriendInfoDAO.find(1);
FriendInfo.setNickname("xing634325131");
FriendInfoDAO.update(FriendInfo);
Log.i(TAG, "update successed");
}
public void testFind()
{
FriendInfoDAO FriendInfoDAO=new FriendInfoDAO(this.getContext());
FriendInfo FriendInfo=FriendInfoDAO.find(1);
if (null==FriendInfo)
{
Log.i(TAG, "not find");
}
else
{
Log.i(TAG, FriendInfo.toString());
}
}
public void testDetele()
{
FriendInfoDAO FriendInfoDAO=new FriendInfoDAO(this.getContext());
FriendInfoDAO.delete(1,2,3);
Log.i(TAG, "delete successed");
}
public void testGetScrollData()
{
FriendInfoDAO FriendInfoDAO=new FriendInfoDAO(this.getContext());
List<FriendInfo> FriendInfos=FriendInfoDAO.getScrollData(0, 1);
for (FriendInfo FriendInfo : FriendInfos)
{
Log.i(TAG, FriendInfo.toString());
}
}
public void testGetCount()
{
FriendInfoDAO FriendInfoDAO=new FriendInfoDAO(this.getContext());
Long count=FriendInfoDAO.getCount();
Log.i(TAG, ""+count);
}
}
发现有这个错误:
以下为AndroidManifest.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test_intent"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner"/>
<activity
android:name="com.example.test_intent.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.test_intent.login"
android:label="@string/sec_string"
></activity>
<activity
android:name="com.example.test_intent.Friend"
android:label="@string/my_friend"
android:logo="@drawable/search_icon"
></activity>
<activity
android:name="com.example.test_intent.FriendSearch"
></activity>
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.sqlite.activity"
android:label="Test My App"></instrumentation>
</manifest>
原因:是因为
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test_intent"
的package的名字
com.example.test_intent与
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.sqlite.activity"
的targetPackage的名字 com.example.sqlite.activity不同的缘故
解决办法:把两者名字改为一样即可。一般把后者改为与前者相同,这样可以不必改变程序的主入口。