Android Studio 进行单元测试完整版

发表于:2018-4-02 14:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:pdskyzcc1    来源:CSDN

  前言
  为了这个AndroidStudio的单元测试,从下午搞到晚上才搞明白咋操作。
  我学一个新知识总是那么坎坷,经历无数的错误路径,才可能找到正确的路在哪儿。
  我的AndroidStudio
  
  我的AndroidStudio是1.5.1版本,但是进行单元测试应该很早的版本就可以了,至少可以追溯到1.0
  注意事项
  当你google查找AndroidStudio单元测试时,有大量的资料教程,但是都不完整,至少跟着教程一步步的是无法看到自己想看的效果的。AndroidStudio自带的单元测试功能是不需要修改gradle或者AndroidManifest.xml文件的。直接编写测试用例即可。
  编写测试用例步骤
  以下以一个由AndroidStudio一步步创建的全新工程为例
  在src目录下会包含三个目录:
 
  - androidTest.java.[包名] 
  main.java.[包名] 
  test.java.[包名] 
  - mian目录下为项目代码,androidTest目录下为编写Android测试用例使用,test目录下未编写Java测试用例使用。
  gradle文件
  增加testCompile 'junit:junit:4.12' 用于Java编写执行Java测试用例。
  编写Java测试用例
  import org.junit.Test;
  import static org.junit.Assert.*;
  /**
   * To work on unit tests, switch the Test Artifact in the Build Variants view.
   */
  public class ExampleUnitTest {
      private static final String TAG = "ExampleUnitTest";
      @Test
      public void addition_isCorrect() throws Exception {
          assertEquals(4, 2 + 2);
      }
  }
  测试用例的执行才是最关键的点
 
  打开测试用例类,即上面的ExampleUnitTest
  在AndroidStudio的界面做侧边栏下部,有两个工具栏(Build Variants 和 Favorites)
  点击 Build Variants,Test Artifact 选项框选择Unit Tests(同理跑Android测试用例选择Android Instrumentation Tests)
  在AndroidStudio的界面做侧边栏上部有一个structure工具标签,(如果找不到,可以通过 工具栏–View–Tool Windows–Structure 打开此工具标签),打开此标签就可以看到此测试用例类的所有方法
  鼠标选中要测的方法,右键–Run [方法名],即可进行Java用例测试。
  编写Android测试用例
  我在androidTest.java.[包名]文件夹中添加了一个类TestAndroidClass,该类派生自InstrumentationTestCase,并写了一个方法,完整代码如下:
  import android.test.InstrumentationTestCase;
  public class TestAndroidClass extends InstrumentationTestCase {
      private static final String TAG = "TestAndroidClass";
      public void test() throws Exception{
          assertEquals(2, 2);
      }
  }
  测试用例执行方法同Java测试用例,但是 Build Variants 的 Test Artifact 选项框一定要更改为 Android Instrumentation Tests。
  注意事项,在android studio中,所有的测试代码必须以test-作为前缀,不然android studio无法识别它为测试代码。(以test为前缀的方法是高亮的,非test的前缀则不是,通过这一点也可以证明)
  最后的话: 
  Build Variants的选择很重要,如果选择Unit Tests,Android的测试用例就会不被识别,反之Java的测试用例不被识别,所以在跑测试用例时一定选对标签,我就是在这里耗费了大量时间,偶然在stackoverflow上看到有人提了一句,感谢。



上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号