实践Android Studio Junit单元测试

来源:互联网 发布:cn域名多少钱一年 编辑:程序博客网 时间:2024/05/22 06:43

Android Studio Junit单元测试:


首先新建一个类,测试其中的方法。

package com.example.testnewas;import android.content.ContentResolver;import android.content.Context;import android.database.Cursor;import android.net.Uri;/** * Created by ylh on 2017/11/3 0003. */public class ReadContantsEngine {    //读取手机联系人方法    public static void readContacts(Context context) {        ContentResolver contentResolver = context.getContentResolver();        Uri uri = Uri.parse("content://com.android.contacts/contacts");        Uri uridatas = Uri.parse("content://com.android.contacts/data");        Cursor cursor = contentResolver.query(uri, new String[]{"_id"}, null, null, null);        //循环取出数据        while (cursor.moveToNext()){            System.out.println(cursor.getString(0));            String id = cursor.getString(0);//获取到联系人的id            Cursor cursor1 = contentResolver.query(uridatas, new String[]{"data1", "mimetype"}, "raw_contact_id = ?", new String[]{id}, null);            while (cursor1.moveToNext()){                String data = cursor1.getString(0);                String mimetype = cursor1.getString(1);                if (mimetype.equals("vnd.android.cursor.item/name")){                    System.out.println("第"+id+"个用户 名字:"+data);                } else if (mimetype.equals("vnd.android.cursor.item/phone_v2")){                    System.out.println("第"+id+"个用户 电话:"+data);                }            }            cursor1.close();        }        cursor.close();    }}

第一种方法:

(1)鼠标右键选中ReadContantsEngine类

Go To -> Test -> Creat New Test -> 选中 readContacts方法 -> [OK]

package com.example.testnewas;import org.junit.Test;import static android.support.test.InstrumentationRegistry.getContext;import static org.junit.Assert.*;/** * Created by ylh on 2017/11/3 0003. */public class ReadContantsEngineTest {    @Test    public void readContants() throws Exception {        ReadContantsEngine.readContacts(getContext());    }}
(2)鼠标右键选中ReadContantsEngineTest

run ReadContantsEngineTest

result:1 test failed



权限问题,在AndroidManifest.xml中加上

<uses-permission android:name="android.permission.READ_CONTACTS"/>

再次测试,通过,Logcat输出打印



第二种方法:

(1)在androidTest包下新建测试类MyTest

package com.example.testnewas;import android.test.AndroidTestCase;/** * Created by ylh on 2017/11/3 0003. */public class MyTest extends AndroidTestCase {    public void testRead(){        ReadContantsEngine.readContacts(getContext());    }}

其余步骤同上




原创粉丝点击