测试是软件开发中非常重要的一部分,Android中是使用junit测试框架,本文使用的是junit4Android Studio。Android测试主要分两类本地测试和Instrumented测试,本地测试其实就是普通的Java程序测试,它运行在本地的JVM。Instrumented测试则需要一台Android设备来运行测试。

环境配置

本地测试与Instrumented测试在测试之前都需要配置测试环境以下是两种测试配置的步骤(Android Studio默认是Instrumented测试):

  1. 添加测试依赖
  2. 切换Build Variant
  3. 建立测试源文件

添加依赖

注意Android Studio引入测试依赖包含两个关键字分别是testCompile和androidTestCompile。testCompile是声明本地测试的依赖,androidTestCompile是声明Instrumented测试依赖。

使用testCompile添加依赖:

    testCompile 'junit:junit:4.12'

使用androidTestCompile添加依赖

    androidTestCompile 'junit:junit:4.12'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
testCompile 'junit:junit:4.12'
androidTestCompile 'junit:junit:4.12'
}

运行Instrumented测试时还需要在build.gradle中添加:

android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}

切换Build Variant

Android Studio默认的Build Variant是Android Instrumentation Tests

建立测试源文件

Instrumented测试文件目录结构:

  • src

    • androidTest

本地测试源文件目录结构:

  • src

    • test

可以看到上图的src/test目录下的源文件是错误的这是因为现在我的Build Variant的Test ArtifactId是Android Instrumentation Tests切换到Unit Tests就可以了。

编写测试

现在编写一个简单本地测试,假设目录src/main/java/com/lw/busyness/中现在有一个CalculateService类内容如下:

public class CalculateService {

    public int add(int a, int b){
return a + b;
} public int sub(int a, int b){
return a -b;
} public int mul(int a, int b){
return a * b;
} public int div(int a, int b){
return a * b;
}
}

新建测试源文件src/test/java/com/lw/busyness/TestCalculateService.java

public class TestCalculateService {

    private static CalculateService mCalculator;

    @BeforeClass
public static void init(){
mCalculator = new CalculateService();
} @Test
public void testAdd(){
int r = mCalculator.add(1, 2);
Assert.assertEquals(3, r);
} @Test
public void testSub(){
int r = mCalculator.sub(1, 2);
Assert.assertEquals(-1, r);
} @Test
public void testMul(){
int r = mCalculator.mul(1, 2);
Assert.assertEquals(2, r);
} @Test
public void testDiv(){
int r = mCalculator.div(1, 2);
Assert.assertEquals(0, r);
} @AfterClass
public static void terminate(){
mCalculator = null;
}
}

最后运行这个测试,在TestCalculateService类上右击选择Run TestCalculateService可以看到测试全部通过。

总结

这篇章主要介绍了Android的两种测试方法和各自的配置。关于如何去分别编写这两种测试讲的不多,可以去junit官网查看相应的使用说明。

最新文章

  1. Java基础常见英语词汇
  2. 【转载】C++内存分配
  3. Yocto 包管理 apt-get
  4. POJ 2142 The Balance (解不定方程,找最小值)
  5. CodeForces 173B Chamber of Secrets spfa
  6. php连mssql中文乱码问题
  7. C#输出40以内的所有奇数程序代码
  8. [Unity3D]Unity3D连衣裙实现游戏开发系统
  9. MVC笔记1
  10. Selenium2(java)selenium常用API 六
  11. Redis入门_上
  12. 【Android 应用开发】GitHub 优秀的 Android 开源项目
  13. 【面试笔试算法】Program 5 : 推箱子 (网易游戏笔试题)
  14. [SpringBoot guides系列翻译]调用RESTfulWebService
  15. tfs权限设置
  16. VC调用外部程序
  17. js项目练习第一课
  18. pymongo模块 目录
  19. 内存布局:栈,堆,BSS段(静态区),代码段,数据段
  20. 【Python】xpath-1

热门文章

  1. 82天突破1000star,项目团队梳理出软件开源必须注意的8个方面
  2. Markdown实用技巧整理
  3. [UWP]占领标题栏
  4. JavaScript label语句
  5. POJ-1847 Tram( 最短路 )
  6. codeforces 456 D. A Lot of Games(字典数+博弈+思维+树形dp)
  7. codeforces 749D Leaving Auction(二分)
  8. 1014 装箱问题 CODE[VS]
  9. go Server示例
  10. Keras之注意力模型实现