一共需要做3件事情:
1.需要在manifest節點文件添加:
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.tu.xmltest"></instrumentation >
其中android:targetPackage指的是要測試哪個包(即要測試哪個程序,因爲可以新建一個測試工程專門測試自己寫的其他應用)
2.在application節點添加:
<uses-library android:name="android.test.runner"/>
這個是給本測試添加需要的類庫
最後添加完成後是這個樣子的Mainifest文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tu.xmltest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.tu.xmltest"></instrumentation>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<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=".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>
</application>
</manifest>
3.新建一個類繼承AndroidTestCase
然後在這個類中寫自己的測試方法,如下:
package com.tu.sql_test;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import android.database.sqlite.SQLiteDatabase;
import android.test.AndroidTestCase;
import android.util.Log;
import com.tu.bean.Person;
import com.tu.dao.PersonDao;
import com.tu.db.DatabaseOpenHelper;
public class DataBaseTest extends AndroidTestCase {
private String TAG = "DataBaseTest";
public void insert(){
PersonDao personDao = new PersonDao(getContext());
personDao.insert("王五", 14);
}
public void testInsert(){
PersonDao personDao = new PersonDao(getContext());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss");
//獲取當前時間
long start = System.currentTimeMillis();
//開始大量數據庫操作
for(int i=0;i<10000;i++){
personDao.insert("張飛"+i, i);
}
//獲取結束時間
long end = System.currentTimeMillis();
//計算耗時
long time = end - start;
Date date = new Date(time);
Log.i(TAG , format.format(date));
}
public void testInsertWithTransaction(){
DatabaseOpenHelper helper = new DatabaseOpenHelper(getContext());
SQLiteDatabase db = helper.getWritableDatabase();
SimpleDateFormat format = new SimpleDateFormat("ss");
//獲取當前時間
long start = System.currentTimeMillis();
if(db.isOpen()){
try{
db.beginTransaction();
//開始大量數據庫操作
for(int i=0;i<10000;i++){
db.execSQL("insert into person(name,age) values(?,?);", new Object[]{"Baby"+i,i});
}
db.setTransactionSuccessful();
}finally{
db.endTransaction();
}
db.close();
}
long end = System.currentTimeMillis();
//計算耗時
long time = end - start;
Date date = new Date(time);
Log.i(TAG , format.format(date));
}
public void queryAll(){
PersonDao personDao = new PersonDao(getContext());
List<Person> linkedList = personDao.queryAll();
// List<Person> list = new ArrayList<>(linkedList);
for (Person person : linkedList) {
Log.i(TAG , person.toString());
// System.out.println(111111);
}
}
public void delete(){
PersonDao personDao = new PersonDao(getContext());
personDao.delete("王五");
}
}