这是我第一次在 Android中编写单元测试用例.

所以我搜索了很多东西.

> Robolectric framewordk – 在JVM上运行
> Mockito框架 – 模仿物体

所以我在Robolectric& Mokito.

>我应该在Android应用程序中仅使用JUnit的Robolectric吗?
>我应该在Android应用程序中仅使用Mockito与JUnit?
>我应该用两个框架去吗?
> Mockito& Robolectric?

我在寻找Mokito& Robolectric但是没有得到任何适当的答案.

请建议.

解决方法

他们的使用略有不同,我倾向于在我的项目中使用.

的Mockito

用于制作你的课程的嘲笑.

当你测试一个特定的类时,你可以用Mockito来模拟所有的依赖项.

如果可能,大多数测试应该使用mockito.为了使这种可能性,大多数人将他们的代码分解成MVP等,其中业务逻辑与View逻辑分离.这样你的业务逻辑(Presenter)在Android库上就没有任何知识(或依赖关系),也不需要嘲笑它们.

Robolectric

是一个包含许多Android类的模拟的库.

当测试运行时,Robolectric测试运行器会注入这些“阴影对象”来代替实际的Android类.这是允许测试在JVM上运行而不启动Android实例的.

使用MVP时,您的View层往往由Activity / Fragment实现,您可以使用Robolectric模拟这些.

笔记

仅在必要时使用Robolectric.它基本上重新实现了Android框架的部分,但并不总是完全相同的方式.

您可能还需要另一个库,如PowerMock.这允许嘲笑静态类,如Math或者可以用来模拟静态的Android类,如TextUtils.

两者都与JUnit一起使用

使用JUnit的单元测试案例(Robolectric或Mockito或Android中的两者)的更多相关文章

  1. Swift教程17-淡化MVC,使用MVVM框架开发轻巧便于维护的iOS/android app

    MVVM是微软提出一种移动开发框架,旨在针对传统的MVC框架,解决传统的MVC框架的控制器的臃肿问题.M:Model模型,也就是数据模型;比如一条微博,对应的所有字段合成一条微博整体,这个整体就是ModelV:View视图,只用来显示的视图,如iOS的UIView,Cell;当然在iOS中Storyboard中,view总是和控制器关联,这并不是严格的view如果我们纯手写代码定义一个view那么

  2. 使用 Swift 语言编写 Android 应用入门

    Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。做梦,虽然Swift编译器可以胜任在安卓设备上编译Swift代码并运行。这需要的不仅仅是用Swift标准库编写一个APP,更多的是你需要一些框架来搭建你的应用用户界面,以上这些Swift标准库不能提供。简单来说,构建在安卓设备上使用的Swiftstdlib需要libiconv和libicu。通过命令行执行以下命令:gitclonegit@github.com:SwiftAndroid/libiconv-libi

  3. R.swift 让iOS项目像Android R 一样管理资源

    什么是R.Swift搞过的Android开发同学都知道,在Android开发中,其对于资源的引用非常方便,我们可以通过”R机制”来对Android中的图片、布局、动画配置、国际化字符串、尺寸等等资源进行非常方便快捷的引用。开妈搞iOS的时候,我瞬间觉得iOS的资源引用略为恶心,跟Android比起来,它更加蛋疼麻烦。R.Swift是一款基于Swift平台,针对iOS以及TVOS开发的仿Android资源引用框架。

  4. Android studio – Faild to resolve:com.android.support:design:26.0.1错误

    我有一个错误叫:我的androidstudio版本是3.0beta1.我的gradle文件如下:我想把“设计”放到我的项目中,但我不能这样做.我该怎么做?解决方法尝试改变和或者不要更改为bulidToolsversion更改依赖项

  5. 如何使用“repo”克隆最小的android源码?

    我可以使用“repo”工具克隆Android源代码.但是,我想要做的是以比没有11GB足迹的更小的方式克隆源代码.它似乎下载了与每个Android设备和每个先前版本相关的内容.我试过想通过检查这样的特定分支来减少这个:然而,最终发生的事情是,我仍然只涉及一个特定的快照(可理解).但有没有办法限制克隆的数量?

  6. android – CordovaActivity无法解析为Phonegap 3.4中的类型

    嗨,我正在通过命令行界面处理PhoneGap.我能够创建一个项目,并从Windows7中的命令提示符运行Android模拟器.由于我在eclipse中将项目导入并复制到我的工作区,因此在主类中显示了一些扩展CordovaActivity的错误.错误是:我该怎么办?

  7. 如何更改android微调器popupBackground

    我试图通过设置android:popupBackground来改变android微调器弹出窗口背景,但它没有任何效果.有什么方法可以改变它吗?

  8. Android中的人脸检测,无需用户交互

    我想检测前置摄像头框架中的面部数量.使用此功能后,我可以检测到脸部:http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html.但我不知道如何在没有用户互动的情况下每隔30秒使用前置摄像头捕获图像.有人可以帮帮我吗?解决方法以下代码将在每5秒钟后从相机中捕捉照片.这里,TIMER_STA

  9. 在Android上自动测试Cordova / Phonegap Webview

    这是我读完你的问题后我能想到的.所以让我们通过给定的环境进行拆分:原生iOS>单元测试–>在xCode中完成.http://www.apple.com>功能测试–>http://appium.io/原生Android>单元测试–>JUnit,http://developer.android.com/tools/testing/testing_android.html>功能测试–>http://selendroid.io/本地网络,如phonegap/cordova应用程序>单元测试–>jsunit,htt

  10. Android单元测试的正确方法

    我知道这对所有Android开发者来说都是一个乏味的话题.但究竟什么是Android测试的正确方法?解决方法这个问题和我的回答,与Android没有任何关系,但这是一件好事.我略微修改了你的假设,但原理是一样的.>70%单元测试>20%集成测试>10%UI测试应该是70%吗?最后,检查您的UI是否按预期工作.你在这个级别显示什么并不重要.只要在用户未登录您的罚款时显示登录屏幕.这通常被称为TestPyramid,是你所描述的,只是减去了明显的比例.

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部