且说正文之前,还是先说说Android单元测试的意义或者说为什么我们要进行Android的单元测试?
为什么要进行单元测试?
单元测试可以帮助我们程序员将bug消灭在萌芽期,为后续的集成测试减少时间.大家可以看一下这篇文章,可能会说服你:为什么要进行烦人的单元测试?
如果那篇文章还不能说服你,那我只能使用杀手锏了~~
大家可以去各大招聘网站上看看,大部分公司都要求开发人员会编写测试用例或使用框架或工具进行测试,并且大公司要求更甚.
这下还有什么好说的吗?单元测试是一个硬要求,即便你不喜欢单元测试,但是如果你想进入一个理想的公司,这是必备的一个技能,所以无论如何你都要去学习的,反正技多不压身嘛.
那么,如果你想学习单元测试,从什么地方找学习资源呢?
- Android官网(https://developer.android.com/training/testing/start/index.html)
- 官网的中文翻译,这是一系列文章,同时加了作者自己的见解
- android官网上关于Espresso的一整套教程
- 也可以看我这篇文章来入门
但不管是通过上面哪个途径,主要说的都是通过Espresso框架进行单元测试.
当然也有其他的一些测试框架,大家也可以去尝试,但是Espresso框架是google官方大力推荐的一套测试框架,所以无论如何都要学习一下的.另外,自Android Studio2.2版本开始,google就为Espresso框架内置了一个图形化界面,用来自动生成单元测试代码.在下一篇文章,我会介绍如何利用这种图形化界面进行单元测试代码的编写.
下面正式开始
首先第一步要做的就是集成Espresso测试环境,非常简单,在你要测试的Module的gradle里添加如下两个依赖:
testCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
}
第一个是junit依赖,这个依赖Android Studio一般都会默认配置,所以你只需要配置第二个依赖即可.
举个栗子:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityInstrumentationTest {
@Rule