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());
}
}
其余步骤同上