Android Studio进行单元测试

来源:泡在网上的日子
链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0505/2835.html

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

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

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

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

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

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

687474703a2f2f69322e74696574756b752e636f6d2f386561316637666638393633346130662e706e67.png

接下来,创建一个叫做 “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”

687474703a2f2f69322e74696574756b752e636f6d2f653931623335313564666632313236372e706e67.png

687474703a2f2f69322e74696574756b752e636f6d2f366635633935323036353135316530372e706e67.png

  1. 然后点击“+”,从左上角选择添加一个 Android Tests,然后你可以将这个测试配置重新命名为”test”或与之相关的名字,也可以不管。

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

  3. 接下来,选择All in Package选项,然后把你的刚才创建的测试文件夹选中。你也可以选择All in Module选项,这样Android Studio会自动的找到你整个Module中的所有测试单元,你也可以通过更具体的类或者是方法选项,进一步缩小测试范围。

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

现在点击Apply然后关闭,运行我们的单元测试
我使用Genymotion来完成所有的事情,所以开启你的Genymotion然后运行test,也可以用真机连接调试。

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

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

这里写图片描述

通过控制台,可以看到打印出的错误原因:

“junit.framework.AssertionFailedError: expected:<1> but was:<5>”
at com.example.tianjia.myapplication.MyTest.test(MyTest.java:15)

已经完成简单单元测试了,并且定位到错误了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值