Fork me on GitHub
文章目录
  1. 1. 摘要
  2. 2. Android Tests
  3. 3. 感谢

摘要


本文写作时,yongf处于Android开发入门阶段,所以,如果文中有任何不妥之处,欢迎在评论中留言,共同探讨。
网上关于eclipse进行单元测试的教程比较多,而AndroidStudio的相对较少。不过,作为Google的亲儿子,AndroidStudio的确在飞快成长,感觉比eclipse强大 :) ,除去开始使用AS时的不适应之外。

Android Tests


AS新建项目时,自动生成了Test类,所以,你只需配置一下Run/Debug Configuration,在Test类中写入测试代码,就可以运行测试了。
详细步骤如下:

  1. 选择顶部工具栏Run–>Edit Configuration
    先编辑测试选项
  2. 选择Default–>Android Tests,我的配置如下图,当然,也可以根据自己的需要自行设置
    自行设置
  3. 在Project中找到ApplicationTest:app–>src–>androidTest–>java–>包名–>ApplicationTest,打开之
    测试文件
  4. 打开之后,它长这样(这些都是自动生成的):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    package com.yongf.sqlitedemo;

    import android.app.Application;
    import android.test.ApplicationTestCase;

    import com.yongf.sqlitedemo.db.PersonSQLiteOpenHelper;

    /**
    * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
    */

    public class ApplicationTest extends ApplicationTestCase<Application> {
    public ApplicationTest() {
    super(Application.class);
    }

    }
  5. 在ApplicationTest中新建自己的测试函数,注意!测试的入口函数的函数名必须为test开头。我加了几行测试代码,加完之后,它长这样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    package com.yongf.sqlitedemo;

    import android.app.Application;
    import android.test.ApplicationTestCase;

    import com.yongf.sqlitedemo.db.PersonSQLiteOpenHelper;

    /**
    * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
    */

    public class ApplicationTest extends ApplicationTestCase<Application> {
    public ApplicationTest() {
    super(Application.class);
    }

    public void test() {
    assertEquals(1, 3);
    }
    }
  6. test函数中为测试代码,assertEquals(1, 3)这句显然有问题,我们的任务就是,在Android Tests中发现这个错误。

  7. 右键app,选择Run All Tests,或者用快捷键Ctrl+Shift+F10。
    Run Tests
  8. 选择模拟器,然后OK。等一会儿
    选择模拟器
  9. 点击下方的Run工具栏,选择test(),窗口中就会打印出错信息了,我这里肯定错了,因为1!=3,错误信息如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Running tests
    Test running started
    junit.framework.AssertionFailedError: expected:<1> but was:<3>
    at com.yongf.sqlitedemo.ApplicationTest.test(ApplicationTest.java:19)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
    at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1879)

    Finish
  10. 从错误信息中,可以轻松定位到出错的位置。如果Test没问题,就会显示Test Passed。
    打印出错信息

打印出错信息

感谢

感谢访问我的个人博客的朋友,如果您感觉本站对您搜索的问题有所帮助,并感觉对本站还满意的话,顶一下吧,希望您把本站分享给您的朋友!在此对您表示由衷的谢意! :)