单元测试以及dagger的使用
最近对测试比较敏感,因为涉及了代码重构,虽然我是很有自信的一个人,但是过度严谨的强迫症很多时候让我很尴尬.
所以还是希望面对源代码有一定的测试代码,以方便验证代码重构之后的正确与否.
所以,游戏开始了.经过了2天的琢磨,终于对android单元测试有了初步的了解.个人看代码,还是很不喜欢记忆比如说,具体的方法的用法啊,什么这个设计模式到底叫什么啊...等等等等,所以很多时候还是很尴尬的,因为就是有一大堆人,总是问我这些= =
说说下文中引用的博客的测试精髓吧,单元测试的精髓,经过我长达两天的钻研,在于模拟,众多的可测试框架名称中就含有mock一词,其意图也是很明显,就是单纯使用一个替代的类来解决源代码中类与类之间的耦合关系,比如,模拟接口返回结果,变量等等.
OK,单元测试就说到这里了,很简单有没有,但是这就是事实.
然后就是dagger的问题了,dagger2android目前我并没有详细地看过,但是就当前对于dagger2而言,dagger2是一种很好的解耦方式,相对于AOP的面向方法的依赖注入,dagger2更倾向于面向对象的依赖注入.这样说其实有一些欠妥当的,因为对于java面向对象的思想下,万物皆可为对象,哪怕他是方法.
dagger的表观使用思路就是这样(我还真的是挺少亲自画画呢= =,因为懒)
在使用者的角度来看,一般通过注解的方式实现依赖注入,annotationPrecessor进行编译器的注解处理
我更倾向于dagger是一种注射的过程,注射的过程中也就是使用针筒将药物注射到相应的位置
其中@inject标记的是药物本身,@component标记的是针管,他连接着储存着药物和人体,而@module标记的是病房,收纳的是container患者,患者身上有需要主要注射的患处,这些患处需要@inject药物的填入
而dagger就是将药物注射到患处的注入过程
在具体实现方面,就存在药物生产商,和实际上充当针管的injector的两个角色,在下述的博客中就有着很好的描述,这里就不多加赘述了.
android单元测试
https://github.com/simplezhli/AndroidUT
dagger基础以及dagger_android
https://blog.csdn.net/mq2553299/article/details/77485800
https://blog.csdn.net/mq2553299/article/details/73136396
单元测试以及dagger的使用相关推荐
- android java pipe_Java-使用Dagger 2进行Android单元测试
我有一个使用Dagger 2进行依赖注入的Android应用. 我还在使用最新的gradle构建工具,该工具允许对单元测试和工具测试使用一个构建变体. 我在我的应用程序中使用Component,并且我 ...
- Android mock for循环,Android单元测试(五):依赖注入,将mock方便的用起来
在上一篇文章中,咱们讲了要将mock出来的dependency真正使用起来,须要在测试环境下经过某种方式set 到用到它的那个对象里面进去,替换掉真实的实现.咱们前面举的例子是:html public ...
- 每个开发者都应该懂一点单元测试
一.什么是单元测试? 为了测试某个类中的某一个方法能否正常工作,而写的测试代码. 单元的定义:代码中可度量的最小单元(函数/方法): 是否正常工作:不同的输入对应的输出是否与预期一致. 二.单元测试有 ...
- [Android]使用Dagger 2依赖注入 - DI介绍(翻译)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5092083.html 使用Dagger 2依赖注入 - DI介 ...
- Android单元测试(五):依赖注入,将mock方便的用起来
在上一篇文章中,我们讲了要将mock出来的dependency真正使用起来,需要在测试环境下通过某种方式set 到用到它的那个对象里面进去,替换掉真实的实现.我们前面举的例子是: public cla ...
- dagger2 注入_Android依赖注入– Dagger 2
dagger2 注入 In this tutorial, we'll discuss and implement Dependency Injection (DI) in our android ap ...
- 架构探险-轻量级微服务架构_第3部分-单活动架构+一些时髦的Dagger
架构探险-轻量级微服务架构 This series takes a basic MVP app using Retrofit and RxJava to display a list of Githu ...
- Android单元测试(七):MVP与单元测试
本篇介绍如何对MVP架构的项目进行单元测试.会用到之前六篇文章中所介绍的内容,算是学以致用了.本文中我没具体说明的地方前几篇文中一定会有的.希望大家可以循序渐进. 对于MVP网上也有很多变种,各有千秋 ...
- 蘑菇街支付金融Android单元测试实践
蘑菇街支付金融Android单元测试实践 2016-04-26 邹勇 移动开发前线 本文为『移动前线』群在4月23日的分享总结整理而成,转载请注明来自『移动开发前线』公众号. 嘉宾介绍 邹勇(网名 ...
最新文章
- 并发模拟的四种方式 + 工具,超级实用!
- UA OPTI512R 傅立叶光学导论17 离散傅立叶变换简介
- java断言——Assertion
- 【C++深度剖析教程38】类模板深度剖析
- 全局最小割Stoer-Wagner算法
- 【鱼眼镜头5】[中央全向相机畸变模型]:统一相机模型,四阶多项式对统一相机模型进行建模
- 【图像压缩】基于matlab行程编码(RLE)图像压缩【含Matlab源码 404期】
- 【微信小程序】性能分析Trace工具
- 国外优秀JAVA技术网站推荐
- 前端请求报错Provisional headers are shown接口请求失败
- linuxi下的做图工具——gnuplot安装
- 视频教程-太空大战游戏实战课程-其他
- springmvc视图解析器详解
- Go学习之编码实现区块链 - 【blockchain】
- Windows子系统WSL
- 柯洁夺斗地主全国冠军!斗地主可以排解输棋痛苦”
- JSP文件的运行过程
- java根据内容生成二维码
- STM32下的LED灯闪烁
- python生成word目录_Python 文件与目录操作方法总结
热门文章
- c# 对象json互相转换_C#匿名对象(转JSON)互转、动态添加属性
- 删除单链上数据域值最小的节点_深入浅出数据结构
- Selenium之定位浏览器弹窗方法汇总
- sqlserver往oracle写数据,Sqlserver连接oracle进行读写数据库
- android 9.0 https 适配,android9.0适配HTTPS:not permitted by network security policy'
- 馀承东鸿蒙发布会,余承东确认出席发布会!荣耀智慧屏-首发搭载鸿蒙系统
- java class扫描接口_JAVA 扫描指定路径下所有的jar包,并保存所有实现固定接口的类型...
- java override格式_Lambda表达式告别@override
- 【408预推免复习】计算机组成原理之指令系统
- 【Web安全】利用burp抓包和CSRF伪造进入admin真实后台