电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

Robolectric简单实例

  • 资源ID:344143298       资源大小:302.18KB        全文页数:6页
  • 资源格式: DOCX        下载积分:0金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要0金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

Robolectric简单实例

软件测试学习交流群:925205234简单理解原理:Android的app需要运行在delvik上面,我们开发的Android app是在JVM上面,开发之前需要下载各个API-Level的SDK,下载的每个SDK都有一个android.jar包,在android_sdk_home/platforms/下面可以看到。开发一个项目的时候,我们需要指定一个API-Level,其实就是将android.jar加入到这个项目的build path里面去。这样项目就可以编译打包了。我们的代码必须运行在真机或模拟器上面。IDE和SDK只提供了开发和编译一个项目的环境,并没有提供运行这个项目的环境,原因是因为android.jar里面的class实现是不完整的,它们只是一些stub,如果打开android.jar下的代码去看,发现所有方法只有一行实现:Throw RuntimeException(“stub!”);运行的单元测试代码要引用android.jar相关代码,就要提供一套完整的运行环境。为了解决这个问题,提出了MVP、MVVM等架构,架构其实是将一层抽离出来。Robolectric就是这样的:通过实现一套JVM能运行的Android代码,然后在运行单元测试代码时去截取android的相关代码调用,然后转到他们的实现代码去执行这个调用过程。Robolectric环境搭建(Windows环境下Android Studio):Gradle中 app下的build.gradle中:DependenciestestCompile junit:junit:4.12testCompile “org.robolectric:robolectric:3.0”注意:如果写成testCompile,则测试代码放在test文件夹中;如果写成androidTest,则测试代码放在androidTest文件夹中。其中的Robolectric最新版本号可能会变,可以上jcenter查看一下最新的版本号。Android Studio中配置:1.将Build Variant里面的Test Artifact选择为Unit Test,如果找不到Build Variant,可以选择View->Tool Windows->Build Variant。2.Mac下还需要配置一个东西:菜单栏选择Run->Edit Configuration->Defaults->JUnit,在Configuration tab将working directory改成$MODULE_DIR$。这个配置是Robolectric官方文档提到的。注意:Robolectric目前不支持android 5.1 API Level22,编译时sdk=21或者一下。项目工程与test工程:项目工程是放在app/src/main/java/com/example/administrator/robolectricdemo下,测试工程是放在app/src/test/java/com/example/administrator/robolectricdemo下。注意:单元测试test工程在编译打包时并不会编译进apk中。Github Demo:地址: 简单实例:假设app里面有两个activity:MainActivity和LoginActivity,MainActivity如上图所示的工程,为了方便查看最好在测试工程里边定义为MainActivityTest。MainActivity里边有一个Button,点击这个Button跳转到LoginActivity,MainActivity里边代码大概是:对应的测试类,MainActivityTest代码:写完之后,开始运行:1. 直接右键运行。2. 启动命令行,cd到项目根目录下,运行./gradlew test(windows运行 gradlew test),等待几秒钟,可以看到运行结果。注意:第一次运行可能需要下载一些library,或者gradle本身,可能需要花一些时间,这个跟unit test本身无关。Mocking框架并不是必须的:结合mock框架例如mockito或者模拟出Android SDK,允许测试风格更接近于黑盒测试,使测试更有效的重构和允许测试关注应用程序的行为,而不是Android的实现。Wiki地址:http:/robolectric.org/index.htmlConfiguring Robolectric定制Robolectric如何在运行时的行为。Config注释。注释可以应用到类和方法,在类或方法前加该注释。Configure SDK LevelRobolectric将对你在清单文件中指定的targetSdkVersion进行测试,如果你想测试特定的代码在不同的sdk中的表现水平,可以改变sdk版本通过设置:Config(sdk=Build.VERSION_CODES.JELLY_BEAN)Public class SandwichTestConfig(sdk=Build.VERSION_CODES.KITKAT)Public void getSandwich_shouldReturnHamSandwich()Configure Application ClassRobolectric将尝试创建应用程序类的一个实例,在清单中指定。如果你想提供一个定制的实现中,您可以指定它通过设置:Config(application = CustomApplication.class)public class SandwichTest Config(application = CustomApplicationOverride.class) public void getSandwich_shouldReturnHamSandwich() Configure Resource Paths自定义清单文件、资源文件、assests文件夹等,如果你想自定义构建系统:Config(manifest = "some/build/path/AndroidManifest.xml")public class SandwichTest Config(manifest = "other/build/path/AndroidManifest.xml") public void getSandwich_shouldReturnHamSandwich() 默认情况下,Robolectric将假定你的资源和assets位于目录命名res和assests。这些路径被认为相对于清单所在的目录。您可以更改这些值通过添加Config resourceDir和Config assetDiroptions 。更多Config设置信息:http:/robolectric.org/configuring/Activity生命周期回调:Robolectric 2.2之前都是通过ShadowActivity来调取生命周期中的函数:ShaowActivity.callOnCreate()。2.2之后通过ActivityController来改变这一切。它的目标是模仿Android如何创造你的Activities和驱动他们的生命周期。通常并不直接创建ActivityController,使用Robolectric.buildActivity()开始:Activity activity =Robolectric.buildActivity(MyAwesomeActivity.class).create().get();这将创建一个MyAwesomeActivity的新的实例,并调用生命周期的onCreate()。更多ActivityController的API操作:http:/robolectric.org/javadoc/latest/org/robolectric/util/ActivityController.html Extending Robolectric (扩展)Shadow Classes(影子类)Robolectric定义了许多的Shadow类别,修改或扩展Android系统的行为类。当一个Android类被实例化,Robolectric寻找相应的影子类,如果找到一个它创建一个阴影对象关联。每次方法调用一个Android类,Robolectric确保影子类的调用对应的方法(如果有的话),所以有机会发挥它的魔力。试用于所有的方法,即使是静态和final的方法,因为robolectric非常的棘手。更多扩展:http:/robolectric.org/extending/ 自定义运行测试:一个很好的例子是初始化一个依赖注入框架为您的测试与一组不同的依赖关系。Robolectric有一种方式可以hook测试的生命周期。地址:http:/robolectric.org/custom-test-runner/

注意事项

本文(Robolectric简单实例)为本站会员(qx****9)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

分享当前资源【Robolectric简单实例】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
二维码
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------



关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.