Android Studio 單元測試


在功能測試有時要通過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(42);
    }
    @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;






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM