在功能測試有時要經過Log來驗證,每次編譯都須要時間,對於一些功能測試能夠用Android Studio自帶的單元測試功能進行調試;
android
在新建項目時,Android studio就已經集成了二個單元測試文件夾(androidTest和test目錄 ):
測試用例
若是測試的代碼沒有使用android Sdk中的環境,可在test目錄下新建一個測試類;
1、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開頭!
3、Android Activity模式
代碼格式
測試類名 extends ActivityInstrumentationTestCase2<要測試的Activity>{}
運行測試報錯以下:
把用工具自動生成的構造器改爲不帶參數的;
最後,就是能夠直接在 class中寫 main()方法進行功能測試(不能含有android方面的代碼):
右鍵方法名,以下圖:
Android studio 在功能與方便上面 真是 完爆 Eclipse啊!
運行 OK;