android蘑菇街架构,蘑菇街Android单元测试框架 – natasha
这个project是怎么来的?
蘑菇街目前采用组件化的开发方式,一个app由很多个模块组成,每个模块都有单元测试的部分,然而有很多代码都是类似的。因此,为了减少重复劳动,我们花时间抽出来一个独立的project,专门做unit testing用的。
这个project是干什么用的?
如前所述,这个project里面主要是一些unit testing会用到的公共代码,来帮助你更快的做unit testing,减少一些boilerplate code。
说白了就是一些帮助类,里面有些帮助方法。
比如里面有个TestBase,里面有
// <=> 是等效于的意思
ae() => Assert.assertEquals()
at() => Assert.assertTrue()
af() => Assert.assertFalse()
目前还没有完整的文档,要看都有哪些帮助类,哪些方法可以看源码哦,目前总共也没几个。
总之,有了这个project,单元测试将变得更加的简单。
这个project用到那些框架/技术?
JUnit4, Robolectric,Mockito,AssertJ,Gson
怎么样使用?
目前你可以使用 http://jitpack.io/来引入这个项目
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
dependencies {
compile 'com.github.mogujie:natasha:v0.1.1'
}
一些小例子
public class StringUtils {
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
}
//测试纯Java代码,继承TestBase
public class StringUtilsTest extends TestBase {
@Test
public void should_isEmpty_works() {
at(StringUtils.isEmpty(null)); //at() is short for Assert.assertTrue()
at(StringUtils.isEmpty(""));
af(StringUtils.isEmpty(" ")); //af() is short for Assert.assertFalse()
af(StringUtils.isEmpty("hello"));
}
}
//测试Android相关的代码,继承RobolectricTestBase,同时需要指定constants = BuildConfig.class,不然的话,会报资源找不到的错误
@Config( constants = BuildConfig.class )
public class ColorUtilsTest extends RobolectricTestBase {
@Test
public void should_parseColor_valid_color() {
ae(Color.RED, Color.parseColor("#FF0000"));
ae(Color.WHITE, Color.parseColor("#FFFFFF"));
}
}
android蘑菇街架构,蘑菇街Android单元测试框架 – natasha相关推荐
- android下测试方法及junit单元测试框架配置方法
1.测试方法: 根据测试是否知道源代码分为: 1. 黑盒测试:只关心程序执行的过程 和 结果 2. 白盒测试:根据源代码写测试方法 或者 测试用例 根据测试粒度: 1.方法测试:function ...
- android官方架构组件,Android 架构组件官方文档01——LifeCycle
使用生命周期感知组件处理生命周期 支持生命周期的组件执行操作以响应另一个组件(例如Activity和fragment)的生命周期状态更改.这些组件可帮助您生成组织性更好,并且通常更轻量的代码,这些代码 ...
- android官方架构room,Android 官方架构组件介绍之 Room(翻译)
持久库Room Room在SQLite上提供了一个抽象层,以便在利用SQLite的全部功能的同时使流畅的数据库访问. 需要处理一些重要的结构化数据的App通常会从本地的持久数据中受益匪浅.最常见的就是 ...
- Android系统架构-[Android取经之路]
摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...
- Android系统架构基本模式解析
Android系统架构总共被分为四层,在这里大家就可以通过介绍对这四个层次进行一个深入的解读,以加深大家对这一系统的认识. 如今,大家面对市场中种类繁多的手机必然挑的眼花缭乱.不过,在智能手机占据主要 ...
- linux与安卓系统目录,android系统架构及源码目录结构
1. android系统架构: android系统架构采用了分层架构的思想,如下图所示,从上到下共4层,分别为:应用程序层.应用程序框架层.系统库和android运行时层.linux内核层. 每层功能 ...
- android系统架构及源码目录结构
本文转载自[踏雪行]的博客(http://blog.csdn.net/finewind/article/details/46324507) 1. Android系统架构: android系统架构采用了 ...
- android面试题大全 android面试题总结
android面试题大全 android面试题总结 1.Android系统的架构 Android系统架构之应用程序 Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端 ...
- android开发板!Android开发你需要了解的那些事,大牛最佳总结
大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...
最新文章
- 主从配置_MySQL主从复制配置详解
- javascript和jq的事件委托
- Python3--批量爬取数据之调用有道api进行翻译
- B站收藏 12.5w+!GitHub 标星 6.6k+!这门神课拯救了我薄弱的计算机基础
- Java SE 桌面可访问性
- 从List分组后重新组织数据
- Python由于目标计算机积极拒绝,无法连接。错误解决
- Nginx 内置变量,细化规则,真实IP获取及限制连接请求
- 透过面试题,洞察Hbase 核心知识点
- java中,剩下的这两个内部类不太好理解!
- [ES6] 细化ES6之 -- async函数
- 进击的小程序:品牌自营GMV同比增长210%,这些行业增速最快……
- lsoci mysql_【MySQL】InnoDB日志机制深入分析
- IKM-Java SE 8评估测试题挑战,测测你的基础水平
- 阿里P7亲自教你!java开发如何包装自己的简历
- Linux下使用zip命令加密压缩/解压文件 zip、unzip、unar
- python 多行注释 字符串_python多行注释和跨行字符串
- 神通数据库分页查询sql
- 阳明心学解析——心学本质关系连接
- Spring Security Oauth2 JWT