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美分.

点赞