单元测试

1、概念:

1、白盒测试、黑盒测试

http://baike.baidu.com/link?url=aSjxpEHNsfu7Zn_3cwJzh_MVP8Zoe2E772oBnsOK-RhVM_Y5aXpqH-OmavFhkwJYfdX8gthjmgdbSkEg4SpRy9J2FC4znwnQEUbUgY6bC4q

_txfo6HwtvViIvOVOXW00bVa6hG2kz52UcR0Eu1ub_4apTfcgJoKWhXVEUksWA2Bg111D0JQd46qb7zDNKVg4

https://zhidao.baidu.com/question/356809400.html

2、单元测试、集成测试

http://baike.baidu.com/item/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95

http://baike.baidu.com/item/%E9%9B%86%E6%88%90%E6%B5%8B%E8%AF%95?fr=aladdin

http://blog.csdn.net/fireofjava/article/details/12834599

http://www.oschina.net/question/2680454_2181619/javascript:;sort=time

3、单元测试,单元的范围

http://blog.csdn.net/fireofjava/article/details/12834599

范围:一般是一个类(方法之间相互调用,有时候只测试一个方法太麻烦)

4、单元测试有几种类型

http://blog.csdn.net/jaychen2011/article/details/52712130

5、覆盖率:

http://blog.csdn.net/huiling815/article/details/53312127

http://www.cnblogs.com/z-bin/p/5728011.html

http://blog.csdn.net/shenggaofei/article/details/52905428

http://www.infoq.com/cn/articles/test-coverage-rate-role

6、综合网址中提到的单元测试的概念

http://chriszou.com/2016/04/13/android-unit-testing-start-from-what.html(里面的说针对一个方法的测试,不太赞同,应该是针对一个类的测试)

http://blog.csdn.net/jaychen2011/article/details/52712130

2、优势,为什么用:

http://blog.csdn.net/jaychen2011/article/details/52712130(非常有意义的四点)

http://chriszou.com/2016/04/16/android-unit-testing-about-why.html(总结的比较全)

https://www.zhihu.com/question/38555569

https://www.zhihu.com/question/27449950

https://www.zhihu.com/question/31135148

https://www.zhihu.com/question/46058948

3、相关框架:

1、Junit

1、下方粗略网址中的介绍,比如Junit4.12(稳定版)

http://www.tuicool.com/articles/IZJjeuJ

https://github.com/zhuifengshen/Junit4Demo

2、小创作-JUnit

http://chriszou.com/2016/04/18/android-unit-testing-junit.html

3、常用于测试断言

http://blog.csdn.net/jaychen2011/article/details/52712130

2、Mock、Mockito

两者关系:

http://www.cnblogs.com/wangtj-19/p/5822369.html(下面的两种误解中提到)

Mockito相关网址:

http://site.mockito.org/

https://github.com/mockito/mockito/blob/release/2.x/doc/release-notes/official.md

http://static.javadoc.io/org.mockito/mockito-core/2.7.13/org/mockito/Mockito.html#0

http://blog.csdn.net/bboyfeiyu/article/details/52127551#t3

前三个是英文官网,第四个是翻译,要看Mockito的基本用法,看第四个就足够了

其他网址:

http://hotdog.iteye.com/blog/937862

http://www.jianshu.com/search?q=Mockito&page=1&type=note

http://www.jianshu.com/p/3d6f76df21f9

http://www.jianshu.com/p/2cadfd40940f

http://www.jianshu.com/p/f6e3ab9719b9

https://github.com/mockito/mockito/wiki/Declaring-mockito-dependency

http://www.jianshu.com/search?q=Mock&page=1&type=note

http://www.jianshu.com/search?q=Mockito%202&page=1&type=note

总结下mockito的使用步骤、以及常用API

(结合goole官方例子,https://github.com/googlesamples/android-architecture)

(上面第四个网址,http://blog.csdn.net/bboyfeiyu/article/details/52127551#t3)

(下方实用网址中的第三第四个,网络请求的单元测试、Presenter的单元测试)

(以及自己在懒人看房中写的HomePresenterTest)

1、一般用来测试mvp中的presenter

2、在测试类中,定义一个presenter成员变量,

其他依赖的对象通过注解mock出来,比如网络Repository、视图View,并通过构造器注入

3、验证行为,验证函数的确切、最少、从未调用次数, verify

4、需要某些返回值时,用when,thenReturn或thenThrow模拟返回或抛出异常,所谓的做测试桩(Stub)

5、上面when中的模拟对象的调用带参数的函数,可以用参数匹配器,如anyInt、anyString等

6、 验证执行执行顺序,InOrder

...

x、为下一步的断言捕获参数 (1.8版本之后)()

ArgumentCaptor,结合断言使用

在某些情况下,当验证交互之后要检测真实的参数值时这将变得有用

常用API,除了上面列步骤中提到的,可以查看下面网址的目录:

http://blog.csdn.net/bboyfeiyu/article/details/52127551#t3

3、Espresso

http://www.jianshu.com/p/7d257016e129

简单总结下吧:

1、onView(ViewMachers),寻找用来测试的View,比如可以通过id(withId)、通过内容(withText)等来查找,

2、preform(ViewActions),执行某些动作,比如可以点击(click)、输入内容(typeText)等

3、check(ViewAssertions),检验测试结果,比如是否展示(isDisplayed()、not(isDisplayed()))、是否存在(doesNotExist)、是否被选中(isChecked())等

注意,看上面网址的图,或者看ViewMachers、ViewActions、ViewAssertions的源码来找相关函数

其他关键点:

1、数据注入,dagger2,,,

2、Junit 的@rule注解,(理解的不是很透彻)

作用是在每个测试方法的执行前后执行一些代码的一个方法,用的比较多的是ActivityTestRule

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,382评论 25 707
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 11,074评论 12 197
  • 前言 单元测试和UI测试大致步骤网上很多文章都有,如果会的可以忽略,关键是错误总结,网上很少有文章提及到,感兴趣的...
    _YGL_阅读 5,145评论 20 23
  • 今天一连接到两个朋友的电话,无独有偶,都是因为孩子的事想和我聊一聊。 曹雨,我的老朋友了,在世界五百强的企业做过市...
    我爱心自在阅读 190评论 1 3
  • 《獾的美食》是讲一只獾的洞里有许多食物,但它并不开心。“苹果、虫子、萝卜、土豆……老是这些,我希望能换个口...
    微微姐姐阅读 1,620评论 0 1