【Android开发经验】使用Android Studio进行单元测试

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992

Android Studio已经到了1.2版本,国内的开发者基本也在从Eclipse向Android Studio进行转变,对于Android开发者,以后必将是Android Studio的天下。

昨天在完善煎蛋项目的时候,需要进行单元测试,在Eclipse环境中进行是很简单的,但是在Android Studio环境中进行单元测试,我还没有尝试过,在国内找了很多资料,大都是人云亦云,也没有测试成功,然后在这篇文章的指导下成功运行,特此翻译,供大家学习参考。

原文:http://rexstjohn.com/unit-testing-with-android-studio/



这篇文章介绍了在Android Studio中进行单元测试的基础部分。

在Android Studio中可以进行单元测试

很多的文章指导你应该在“build.gradle” 文件里面添加几行代码从而允许单元测试,并且告诉你应该在项目依赖中添加Android测试库。

其实你并不需要按照这种错误的方式去做,因为这是完全没有必要的。

Android Studio本身就支持Android单元测试,你只需要在你的项目中配置一下就可以了。

注意:还有好几种广受欢迎的Android单元测试框架,比如Robolectric,它们比我在这里提到的需要更多的配置,我希望在未来可以以这个题目再写一些指导文章。

创建你的单元测试文件夹

我喜欢把单元测试放在我的主项目里面,比如“com.mypath.tests.” ,你可以把测试目录放到你想要的地方。开始之前,像下面这样,先创建你的测试文件夹。(译者注:这一步不是必须的,你也可以把单元测试类创建在与Android Studio默认的ApplicationTest类相同的路径下面)

接下来,创建一个叫做 “ExampleTest”的类,注意要继承自InstrumentationTestCase类

然后可以添加一个简单的测试代码,我们知道这段代码肯定会运行失败

public class ExampleTest extends InstrumentationTestCase {
    public void test() throws Exception {
        final int expected = 1;
        final int reality = 5;
        assertEquals(expected, reality);
    }
}

注意:所有的测试方法必须以”test”开头,这样Android Studio才能自动的找到所有你想要进行单元测试的方法。

为你的项目配置单元测试

现在我们已经有了一个会运行失败的测试单元,我们必须把它run起来。

首先点击”Run-> Edit Configurations”

然后点击“+”从左边弹出的列表里,选择添加一个 Android Tests,然后你可以在右上角给它改名为你想要的名字。

然后就会创建一下像下面这样的测试项目配置

从下拉菜单中选择你当前的module

接下来,选择”All in Package”选项,然后把你的刚才创建的测试文件夹选中。你也可以选择“All in Module”选项,这样Android Studio会自动的找到你整个Module中的所有测试单元,你也可以通过另外的选项,指定某一个类甚至是测试方法。

做完这一切之后,看起来应该像下面这样

我也喜欢选中下面的“Show chooser dialog”,这样当每次运行的时候,我可以指定如何去运行

现在点击”Apply”然后关闭,你现在应该可以看到你的测试案例已经作为一个可以运行的项目配置在Android Studio上面的工具栏上了

运行我们的单元测试

我使用Genymotion来完成所有的事情,所以开启你的Genymotion然后运行test

在assertion这一行添加一个断点,然后点击 “run debug mode”,目的是为了证明Android Studio确实执行了我们的单元测试。

当你开始你的测试工程之后,你会看到一个叫做“Running Tests…”的显示窗口

当你的测试没有通过,点击“Logcat”然后查看综合的输出结果,看下我们测试失败的原因

通过控制台,你会发现给出的错误理由应该是

“junit.framework.AssertionFailedError: expected:<1> but was:<5>”

恭喜你,你已经成功测试出错误啦~

下面的这些资料在完成本文时,给了很大的帮助

时间: 2024-10-05 06:05:24

【Android开发经验】使用Android Studio进行单元测试的相关文章

【Android开发经验】android:windowSoftInputMode属性具体解释

本文章来自CSDN博客:http://blog.csdn.net/zhaokaiqiang1992.转载请注明地址! 在前面的一篇文章中,简单的介绍了一下怎样实现软键盘不自己主动弹出,使用的方法是设置android:windowSoftInputMode属性. 那么,这个属性究竟是干什么的,他有什么作用呢?今天这篇文章.就是探索android:windowSoftInputMode属性的作用的. 首先,我们从这个属性的名称中,能够非常直观的看出它的作用,这个属性就是来设置窗体软键盘的交互模式的.

【Android开发经验】Android Studio1.0正式版初体验——常用功能使用指南

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 上一篇文章中,我们把Android Studio的平台都搭建起来了,这一篇文章,将介绍Android Studio的一些常用的功能介绍.下面要介绍的功能是最常用的,但是肯定不全,如果你有什么其他的疑问,可以给我留言,解决之后我会告诉你. 1.如何导入Eclipse项目创建的项目 我们之前的项目基本都是Eclipse创建的,如果我现在想用Android Studio来管理,我们应该怎么做呢? 首先,在Ecl

【Android开发经验】Android Studio1.0正式版初体验——Mac/Window双平台安装指南

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 自从谷歌在2013年的I/O大会上推出Android Studio(下称AS)之后, 测试版一直在不断更新,我也一直在关注着这款开发工具的动态.在前几天谷歌终于发布了AS的正式版,并且鼓励Android开发者从Eclipse转向这款新的开发工具.对于国内的开发者来说,由于使用习惯和团队工作的关系,可能短期内不会转向AS,但是从长远来看,我感觉AS一定会取代Eclipse的,因为Eclipse的占用内存大.

【Android开发经验】Android相关问题的好文章收集器

本篇文章将持续更新,收集我看过的写的非常好的文章,以便日后查阅回顾. 2015.1.8 Android TouchEvent事件传递机制

【Android开发经验】Android举UI设计经验

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 1.Android眼下的主流设备分辨率为480×800.720×1280.1080×1920,单位是像素.在做界面设计的时候请重点关注这几个分辨率. 2.在制作高清原型图的时候.推荐使用729*1280像素作为基础分辨率,这个尺寸720×1280中显示完美.在1080×1920中看起来也比較清晰.切图后的图片文件大小也适中,应用的内存消耗也不会过高. 3.假设能够的话.推荐使用android从4.0之后推

【Android开发经验】Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神

本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题! 下面排名不分先后 CSDN 鸿洋:http://blog.csdn.net/lmj623565791 爱哥:http://blog.csdn.net/aigestudio 老罗:http://blog.csdn.net/luoshengyang 小巫:http:/

Android读书笔记——Android studio的安装配置

随着Google为自家"儿子"推出了新的ide--Android studio,并不再更新eclipse,对于Android开发者而言,改用Android studio是势在必行了,作为一名学生党,自学Android也有一段时日了,从当初一开始用eclipse到现在尝试改用Android studio,发现Android studio确实比eclipse好用很多,毕竟Android studio作为Google为Android专门开发的IDE. Android studio 配置 首先

Android开发经验分享-GridView、ListView内容错乱

在使用GridView.ListView的过程中遇到内容错乱的问题,费了较长时间才找到问题的根源,特地总结一下. 1.在自定义adapter中没有给每一项都设置内容导致内容错乱: @Override public View getView(final int position, View convertView, ViewGroup parent) { if( null == convertView ){ mGridHolder = new GridHolder( ); convertView

Android应用开发中如何进行单元测试

(一. 对某个方法进行测试) 转载自: http://www.cnblogs.com/feisky/archive/2010/07/23/1783826.html Menifest.xml中加入: <application>中加入: <uses-library android:name="android.test.runner" /> <application>外面加入: <uses-permission android:name="

Android 开发环境 Android Studio

Android Studio 是一个全新的 Android 开发环境,基于 IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试,在 IDEA 的基础上,Android Studio 提供: 基于 Gradle 的构建支持Android 专属的重构和快速修复提示工具以捕获性能.可用性.版本兼容性等问题支持 ProGuard 和应用签名基于模板的向导来生成常用的 Android 应用设计和组件功能强大的布局编