美文网首页
单元测试

单元测试

作者: zzyytt | 来源:发表于2017-03-19 22:42 被阅读0次

    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

    相关文章

      网友评论

          本文标题:单元测试

          本文链接:https://www.haomeiwen.com/subject/zowvnttx.html