蘑菇街支付金融Android单元测试实践

2016 年 5 月 19 日

本文为『移动前线』群在 4 月 23 日的分享总结整理而成,转载请注明来自『移动开发前线』公众号。

嘉宾介绍

邹勇(网名小创)蘑菇街支付金融资深安卓开发工程师。自毕业以来一直从事 Android 开发工作,先后工作于创新工厂、微策略以及蘑菇街。对单元测试和 TDD 情有独钟。

大家好,我是蘑菇街支付金融部门的邹勇,花名叫小创。今天很高兴跟大家分享一下安卓的单元测试在蘑菇街支付金融的实践。下面,我们从为什么开始。

为什么要写单元测试

首先要介绍为什么蘑菇街支付金融这边会采用单元测试的实践。说起来比较巧,刚开始的时候,只是我一个人会写单元测试。后来老板们知道了,觉得这是件很有价值的事情,于是就叫我负责我们组的单元测试这件事情。就这样慢慢的,单元测试这件事情就成了我们这边的正常实践了。再后来,在公司层面也开始有一定的推广。

要说为什么要写单元测试的话,我相信大部分人都能承认、也能理解单元测试在保证代码质量,防止 bug 或尽早发现 bug 这方面的作用,这可能是大家觉得单元测试最大的作用。然而我觉得,除了这方面的作用,单元测试还能在很大程度上改善代码的设计,同时还能节约时间,让人工作起来更自信、更开心,以及其他的一些好处。这些都是我的切身感受,我相信也是多数真正实践过单元测试的人的切身感受,而不是为了宣传这个东西而说的好听的大话。

原文链接:【 https://www.infoq.cn/article/mogujie-android-unit-testing 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2016 年 5 月 19 日 17:33 12566

评论 1 条评论

发布
用户头像
为什么robolectric需要10s耗时?主要耗时在哪里?
2020 年 08 月 14 日 00:17
回复
没有更多评论了
  • 如何做好验收测试?

    验收测试(Acceptance Testing),是确认应用是否满足设计规范的测试,是技术交付必经的环节。

    2019 年 3 月 27 日

  • 解决真实世界的单元测试问题

    所有的信息、图书、工具都摆在面前,你只要把NUnit拣起来就可以上路了,不是么?不是。即便是在下决心要开始写单元测试之前,我们也得从别人那里吸取经验,从那些好的坏的故事里,那些令人绝望或是见证奇迹的时刻中,取其精华弃其糟粕。然后纵身一跃,落入陷阱。最后才意识到,要学的东西还多着呢! 摘要: 所有的信息、图书、工具都摆在面前,你只要把NUnit拣起来就可以上路了,不是么?不是。即便是在下决心要开始写单元测试之前,我们也得从别人那里吸取经验,从那些好的坏的故事里,那些令人绝望或是见证奇迹的时刻中,取其精华弃其糟粕。然后纵身一跃,落入陷阱。最后才意识到,要学的东西还多着呢!

  • 当反射、注解和泛型遇到 OOP 时,会有哪些坑?

    业务项目中大都是增删改查,用到反射、注解和泛型的机会非常少,但只有学好、用好这些高级特性,才能开发出更简洁易读的代码。

    2020 年 4 月 23 日

  • 测试专栏特别放送 | 答疑解惑第四期

    今天的“答疑解惑”文章,我将针对API自动化测试和代码级测试这两个系列6篇文章中的问题,和你展开分享。

    2018 年 11 月 5 日

  • 结课测试 &GitHub 相关生态应用(持续集成、单测覆盖率、文档发布、issue 管理)

    2019 年 5 月 20 日

  • Android 中的单元测试

    由 于Instrument Test使用和运行的不便,在Android项目中对代码添加测试变得非常困难。本文基于项目实践,描述了在实际项目中如何借助于MVP模式和 Robolectric框架,实现逻辑和视图的分离,为代码添加有效完备的单元测试,并简单介绍了Robolectric的实现原理以及如何对其进行扩 展。

  • 利用 Ruby 简化你的 Java 测试(进阶篇)

    本文是Productive Java with Ruby系列文章的第二篇,通过上一篇的介绍,我想大家对如何利用Ruby进行单元测试有了一个基本的了解,从这里开始,我将和大家一起讨论一些利用Ruby进行单元测试时的高级话题。

  • iOS 开发中的单元测试(一)

    本文对比两个iOS开发中常见的单元测试框架:OCUnit,被官方集成进XCode 4.x版本中;GHUnit,被推荐最多的测试框架,带GUI界面。初窥两款测试框架非常相似,而上手使用就会发现其中的区别。细节上的区别使两款框架在不同角度各有优劣。

  • Golang 单元测试框架 gocheck 使用介绍

    单元测试应该在的功能和参数上验证程序的正确性;单元测试过后,机器状态应该保持不变;单元测试的运行、通过、失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。

发现更多内容

《黑神话:悟空》出圈背后,国产3A游戏的技术新机

脑极体

week11 作业

雪涛公子

手写Spring框架之IOC

简爱W

对于三千万攀登者来说,云是安全绳,是登山杖,是趋顶之路

脑极体

奈学:红黑树(RedBlackTree)的概述

奈学教育

AVL

架构师训练营第 11 周——练习

李伟

架构师训练营

图解 K8s 核心概念和术语

后端进阶

Docker Kubernetes 容器 云原生 k8s

调度选得好,下班回家早

易观大数据

SpreadJS 纯前端表格控件应用案例:在线问卷系统

Geek_Willie

导致系统不可用的原因有哪些?

张磊

区块链技术可提高数据可信性和安全性

CECBC区块链专委会

区块链技术 安全性

安全&高可用架构

dony.zhang

高可用 安全 安全架构 高可用系统的架构 高可用系统的运维

架构师培训 -11 安全、高可用

刘敏

架构师训练营第十一章作业

吴吴

Week11总结

张磊

奈学:红黑树(RedBlackTree)的概述

古月木易

【Elasticsearch 技术分享】—— Elasticsearch 存储一条数据, put 过程是什么样子的?

liuzhihang

Java elasticsearch 搜索 ES Lucene Elastic Search

week11 总结

雪涛公子

XSKY S3 Console 为对象存储系统赋能

XSKY融合存储

合同、封条、电梯……通通上链!

CECBC区块链专委会

区块链技术 监管平台

Java二进制和位运算,这一万字准能喂饱你

YourBatman

位运算 二进制

朱嘉明:新冠肺炎疫情如何改变社会成本观念和结构

CECBC区块链专委会

社会结构 社会观念

架构师训练营-第十一周-命题作业

sljoai

极客大学架构师训练营 命题作业 第十一周

系统高可用

陈皮

LeetCode题解:20. 有效的括号,while循环replace,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

不可用与高可用

dongge

第11周 安全和高可用

陆不得

架构师培训第十一周练习

小蚂蚁

架构师课程第十一周总结

dongge

极客大学架构师训练营---习题

李朋

Cause: java.sql.SQLTimeoutException: ORA-01013: user requested cancel of current

青乡之b

Druid

蘑菇街支付金融Android单元测试实践-InfoQ