在功能測試有時要通過Log來驗證,每次編譯都需要時間,對於一些功能測試可以用Android Studio自帶的單元測試功能進行調試;
在新建項目時,Android studio就已經集成了二個單元測試文件夾(androidTest和test目錄 ):
測試用例
如果測試的代碼沒有使用android Sdk中的環境,可在test目錄下新建一個測試類;
一、Test測試模式
因as自動生成了一個ExampleUnitTest類,就在此類中新建測試方法如下:
測試方法即public void的方法,並且加上@Test注解,這是Junit的標准用法;
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
@Test
public void getRequest(){
OkhttpDemo okhttpDemo=new OkhttpDemo();
okhttpDemo.getRequest();
}
public class OkhttpDemo {
String url = "http://www.wooyun.org";
final OkHttpClient client = new OkHttpClient();
.get()
.tag(this)
.url(url)
.build();
try {
Response response = null;
response = client.newCall(request).execute();
if (response.isSuccessful()) {
// Log.i("WY", "打印GET響應的數據:" + response.body().string());
System.out.print(response.body().string());
} else {
throw new IOException("Unexpected code " + response);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
右擊要測試的方法
顯示結果如下:
如有打印語句,結果卻顯示如下:
這時就要檢查代碼中是否含有android 代碼!
注意該Test模式與AndroidTest模式(extends InstrumentationTestCase 測試方式)下開線程,是不能打印出日志!!Activity模式( extends ActivityInstrumentationTestCase2<MainActivity>)完全,模擬Actvity,可以運行!
二.AndroidTest模式
代碼格式
測試類名 extends InstrumentationTestCase{}
其他代碼與Test類似,參考Test模式!
注意其中測試方法要以test開頭!
三、Android Activity模式
代碼格式
測試類名 extends ActivityInstrumentationTestCase2<要測試的Activity>{}
運行測試報錯如下:
把用工具自動生成的構造器改成不帶參數的;
最后,就是可以直接在 class中寫 main()方法進行功能測試(不能含有android方面的代碼):
右鍵方法名,如下圖:
Android studio 在功能與方便上面 真是 完爆 Eclipse啊!
運行 OK;