android測試類

一共需要做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("王五");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章