android用单元测试的多,AndroidStudio中对Android应用进行单元测试InstrumentationTestCase...

博主此前未做过单元测试,此次研究Android Studio自带的jUnit单元测试。介绍了在Ubuntu 14.04 x64系统、Android Studio 1.2.1.1版本下的配置步骤,包括build.gradle文件设置、新建测试类、添加测试方法等,还说明了运行测试和查看结果的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

真是艰难啊 因为之前没有做过单元测试 基本都是直接在应用里面测试的 可能是因为项目都不是很大 所以好像也没有什么问题 于是今天有点空 就研究一下 听说androidStudio自带jUnit 于是就开始研究了 真艰难。。。各种查资料 全都是在adt下的安卓应用单元测试 查到androidStudio的也都是不知道在说什么 心好累。。。。

搞了一天 终于明白怎么弄了 我们的包名为 in.xjp.testcaseapplication AndroidStudio 版本为1.2.1.1 系统 ubuntu14.04 x64 jUnit使用AndroidStudio自带版本

文件目录是这样的

43d54d7a18eeed373f1f7afed446007e.png

0. 在app中的build.gradle 文件中的 android的defaultConfig中添加如下

1testApplicationId "in.xjp.testcaseapplication.test"

其实 这步骤可以省略 默认的值就是包名 这个值表示测试的类在 androidTest这个文件夹下的位置 并 不需要 引入其他的库文件 之前查到好多还都要引入junit 和其他的东西 结果发现其实不需要 默认在androidTest里面有个ApplicationTest的被我删掉了

1. 并 不需要 在AndroidManifest.xml添加额外的配置 之前查到要添加uses-library和instrumentation项 后来试了一下发现不需要

2. 新建一个类 继承自 InstrumentationTestCase ,查到很多是继承自TestCase , 其实InstrumentationTestCase就是继承自TestCase的

1public class LogTest extends InstrumentationTestCase{}

这个是用来测试普通的类的 除了这个 还有 ActivityInstrumentationTestCase2用来测试activity的 ActivityInstrumentationTestCase2 中有方法可以获取到应用的context

除此外还有其他测试用的类 这些类在测试的时候都不用显式调用 除非使用TestSuite来自己控制测试

3. 然后在里面添加方法 这个与其他查到的差不多 ,有一些自带的生命周期的方法可以重写,setUp啊tearDown啊什么的, 所有的用来测试方法都以test开头, 不能有参数, 函数前面有一些描述 @SmallTest @MediumTest 还有其他一些 ,详细可以再查 不过好像不写也没问题

1

2

3

4

5@SmallTest

public void testTest() throws Exception{

// TO DO

assertEquals(1,3);

}

assertEquals是用来比较预期结果与实际结果的函数 如果一样表示测试通过 如果不一样或者抛出异常表示测试不通过 类似的函数还有好多其他的

所有测试方法在测试的时候都会自动执行 不需要显示调用 之前查到可以用TestSuite 之类的设置测试的类与测试的方法 其实不用也可以

4. 在终端中运行 bashgradle connectedAndroidTest 这个是直接在真机上运行测试 所以要有手机或者虚拟机 包中 in.xjp.testcaseapplication.test中所有继承自InstrumentationTestCase类中的所有的testXXX() 方法都会自动去执行一次 手机上看可能就是闪一下就过去了 测试完成后会自动卸载应用

ps: 发现androidStudio自带的终端蛮好用 暂不知道有没什么图形化方法开始测试

5. 查看测试结果 会自动生成在app/build/reports文件夹下的网页文件中 打开index.html就可以看到测试结果了

这个测试示例已经传到这里了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值