这个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相关推荐

  1. android下测试方法及junit单元测试框架配置方法

     1.测试方法: 根据测试是否知道源代码分为: 1.  黑盒测试:只关心程序执行的过程 和 结果 2.  白盒测试:根据源代码写测试方法 或者 测试用例 根据测试粒度: 1.方法测试:function ...

  2. android官方架构组件,Android 架构组件官方文档01——LifeCycle

    使用生命周期感知组件处理生命周期 支持生命周期的组件执行操作以响应另一个组件(例如Activity和fragment)的生命周期状态更改.这些组件可帮助您生成组织性更好,并且通常更轻量的代码,这些代码 ...

  3. android官方架构room,Android 官方架构组件介绍之 Room(翻译)

    持久库Room Room在SQLite上提供了一个抽象层,以便在利用SQLite的全部功能的同时使流畅的数据库访问. 需要处理一些重要的结构化数据的App通常会从本地的持久数据中受益匪浅.最常见的就是 ...

  4. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  5. Android系统架构基本模式解析

    Android系统架构总共被分为四层,在这里大家就可以通过介绍对这四个层次进行一个深入的解读,以加深大家对这一系统的认识. 如今,大家面对市场中种类繁多的手机必然挑的眼花缭乱.不过,在智能手机占据主要 ...

  6. linux与安卓系统目录,android系统架构及源码目录结构

    1. android系统架构: android系统架构采用了分层架构的思想,如下图所示,从上到下共4层,分别为:应用程序层.应用程序框架层.系统库和android运行时层.linux内核层. 每层功能 ...

  7. android系统架构及源码目录结构

    本文转载自[踏雪行]的博客(http://blog.csdn.net/finewind/article/details/46324507) 1. Android系统架构: android系统架构采用了 ...

  8. android面试题大全 android面试题总结

    android面试题大全  android面试题总结 1.Android系统的架构 Android系统架构之应用程序  Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端 ...

  9. android开发板!Android开发你需要了解的那些事,大牛最佳总结

    大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...

最新文章

  1. 主从配置_MySQL主从复制配置详解
  2. javascript和jq的事件委托
  3. Python3--批量爬取数据之调用有道api进行翻译
  4. B站收藏 12.5w+!GitHub 标星 6.6k+!这门神课拯救了我薄弱的计算机基础
  5. Java SE 桌面可访问性
  6. 从List分组后重新组织数据
  7. Python由于目标计算机积极拒绝,无法连接。错误解决
  8. Nginx 内置变量,细化规则,真实IP获取及限制连接请求
  9. 透过面试题,洞察Hbase 核心知识点
  10. java中,剩下的这两个内部类不太好理解!
  11. [ES6] 细化ES6之 -- async函数
  12. 进击的小程序:品牌自营GMV同比增长210%,这些行业增速最快……
  13. lsoci mysql_【MySQL】InnoDB日志机制深入分析
  14. IKM-Java SE 8评估测试题挑战,测测你的基础水平
  15. 阿里P7亲自教你!java开发如何包装自己的简历
  16. Linux下使用zip命令加密压缩/解压文件 zip、unzip、unar
  17. python 多行注释 字符串_python多行注释和跨行字符串
  18. 神通数据库分页查询sql
  19. 阳明心学解析——心学本质关系连接
  20. Spring Security Oauth2 JWT

热门文章

  1. iOS证书申请打包上传App Store审核完整流程(7个步骤)
  2. DNS 服务器配置03
  3. mysql 空间索引_Mysql空间索引
  4. 使用cesium加载mapbox地图底色的办法
  5. 打开特斯拉App,自己的车变成了别人的车
  6. 华为云服务器 共享文件夹在哪个文件夹,用户数据安全存储 华为云空间这些功能大显身手...
  7. 预告:关于php制作桌面软件的方案与未来规划
  8. android如何切换主题背景图片,android主题设置与主题切换
  9. 170611 逆向-gctf的debug的writeup
  10. 插值和拟合MATLAB