Android Unit Tests
前言
本文主要通過樣例來簡要介紹Android單元測試基於AndroidTestCase類,主要針對sdk或者不涉及ui的但是需要依賴AndroidSDK的,並生成代碼的覆蓋率報告。
Android Unit Tests
單元測試(Android unit tests)是運行在手機或模擬器上的測試,下麵詳細介紹如何進行模擬器或手機進行測試。
gradle配置
基於gradle與maven的對比,這裏使用Gradle構建工具為例。
AndroidSDK默認提供基於AndroidTestCase的單元測試支持,首先在build.gradle中增加依賴:
編寫測試與運行
測試工程
新建一個Android工程,這裏以非常簡單的被測類為例,目錄結構如下:
DemoA.java
public class DemoA {
public int funtionA(int a, int b){
return a + b;
}
public int funtionB(int a, int b){
return a * b;
}
}
DemoTest.java
public class DemoTest extends AndroidTestCase{
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testDemoAWithFunctionA(){
DemoA demoA = new DemoA();
int i = demoA.funtionA(3, 4);
assertEquals(7, i);
}
public void testDemoAWithFunctionB(){
DemoA demoA = new DemoA();
int i = demoA.funtionB(3, 4);
assertEquals(12, i);
}
}
setUp() 在測試執行前需要做的一些初始化的事情
tearDown() 在測試結束後,需要做一些事情
運行測試
有了簡單的測試代碼,下麵看如何運行測試。
Android Studio運行測試
1. 如單獨運行某個測試類,打開DemoTest測試類直接點擊運行即可
2. 如需要全部類執行,直接點擊
命令行運行測試
也可以通過命令行運行測試:
./gradlew connectedAndroidTest --info
生成報告位置如下
覆蓋率統計
單元測試覆蓋率的統計可以使用JaCoCo插件。
build.gradle配置
在模塊build.gradle中增加如下配置:
運行測試
./gradlew clean createDebugCoverageReport --info
覆蓋率報告生成位置
<path_to_your_project>\app\build\reports\coverage\debug\index.html
最後更新:2017-10-20 15:33:25