No27-原-浅谈使用Android Studio进行Android Tests(单元测试)
摘要
本文写作时,yongf处于Android开发入门阶段,所以,如果文中有任何不妥之处,欢迎在评论中留言,共同探讨。
网上关于eclipse进行单元测试的教程比较多,而AndroidStudio的相对较少。不过,作为Google的亲儿子,AndroidStudio的确在飞快成长,感觉比eclipse强大 :) ,除去开始使用AS时的不适应之外。
Android Tests
AS新建项目时,自动生成了Test类,所以,你只需配置一下Run/Debug Configuration,在Test类中写入测试代码,就可以运行测试了。
详细步骤如下:
- 选择顶部工具栏Run–>Edit Configuration
- 选择Default–>Android Tests,我的配置如下图,当然,也可以根据自己的需要自行设置
- 在Project中找到ApplicationTest:app–>src–>androidTest–>java–>包名–>ApplicationTest,打开之
打开之后,它长这样(这些都是自动生成的):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package 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);
}
}在ApplicationTest中新建自己的测试函数,注意!测试的入口函数的函数名必须为test开头。我加了几行测试代码,加完之后,它长这样:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19package 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);
}
}test函数中为测试代码,
assertEquals(1, 3)
这句显然有问题,我们的任务就是,在Android Tests中发现这个错误。- 右键app,选择Run All Tests,或者用快捷键Ctrl+Shift+F10。
- 选择模拟器,然后OK。等一会儿
点击下方的Run工具栏,选择test(),窗口中就会打印出错信息了,我这里肯定错了,因为1!=3,错误信息如下:
1
2
3
4
5
6
7
8
9
10Running 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从错误信息中,可以轻松定位到出错的位置。如果Test没问题,就会显示Test Passed。
感谢
感谢访问我的个人博客的朋友,如果您感觉本站对您搜索的问题有所帮助,并感觉对本站还满意的话,顶一下吧,希望您把本站分享给您的朋友!在此对您表示由衷的谢意! :)
本文标题:No27-原-浅谈使用Android Studio进行Android Tests(单元测试)
文章作者:王用
发布时间:2015-11-30 18:59:17
原始链接:http://blog.54yongf.com/Android开发/27.html
许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。