android – Robotium与Mockito或Easy Mock

我是 Android测试的新手,如果你们中的一些人可以帮助我,我真的很感激.
我使用robotium作为自动化测试框架(到目前为止一直很好),但我不知道我如何使用mockito或Easy Mock为我的测试添加一些模拟.我真的很困惑.有人能给我一些关于如何实现这个目标的简单例子吗?

提前致谢

解决方法

简答/意见

我不建议使用Mockito进行Android单元测试. Android环境感觉太复杂,无法模拟. Android单元测试的基本方法是在模拟器中运行它们.因此,许多容器类已经存在并且不需要被模拟.

答案很长

我对Android单元测试的世界也相对较新.我一直在编写服务器端单元测试,并发现Mockito是简化单元测试的最佳工具之一. Mockito非常有助于模拟复杂对象的行为.这有助于打破您的测试代码可能对容器(例如servlet容器或Osgi容器)或其他复杂协作者(例如数据库连接类)的依赖关系.

当容器/协作者具有定义良好的接口时,这种模拟效果很好.

几个月前,我决定尝试使用Android开发的Mockito.我发现Mockito确实有用,如果你有至少1.9.5和dexmaker. Dexmaker为Android的Dalvik VM处理运行时字节码生成.

我在第一次测试中尝试的第一件事是模拟android.content.Context,我发现那是很难的.首先,我试图仅模拟我直接调用方法,但后来我发现这些方法调用了其他依赖于应用程序资源的方法,…最终,模拟变得如此复杂以致于它在第一次使用Mockito时失败了地点.

所以我放弃并开始使用Android单元测试助手类(AndroidTestCase,ActivityUnitTestCase,…).我很沮丧,我现在不得不依赖于模拟器,这意味着SLOW测试执行.也许Mockito仍然在这种类型的测试中占有一席之地.它可能对模拟外部数据源等内容很有用.

无论如何,这只是我的2美分.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...