【问题标题】:Robotium with Mockito or Easy Mock带有 Mockito 或 Easy Mock 的机器人
【发布时间】:2012-11-28 11:29:15
【问题描述】:

我是 Android 测试的新手,如果有人能帮助我,我将不胜感激。 我使用robotium 作为自动化测试框架(到目前为止还不错),但我不知道如何使用mockito 或Easy Mock 在我的测试中添加一些模拟。我真的坚持这一点。谁能给我一些简单的例子来说明如何做到这一点?

提前致谢

【问题讨论】:

  • 我认为您将验收测试与单元测试混为一谈。你到底想用 robotsium 测试模拟什么?
  • 试试这个article

标签: android mockito robotium easymock


【解决方案1】:

简答/意见

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

长答案

我对 Android 单元测试的世界也比较陌生。我长期编写服务器端单元测试,发现 Mockito 是简化单元测试的最佳工具之一。 Mockito 在模拟复杂对象的行为方面非常有帮助。这有助于打破您的被测代码可能对容器(例如 servlet 容器或 OSGI 容器)或其他复杂协作者(例如数据库连接类)的依赖。

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

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

我在第一次测试中尝试的第一件事是模拟 android.content.Context,我发现这很难。首先我尝试只模拟我直接调用的方法,但后来我发现这些调用到其他依赖于应用程序资源的方法中,......最终模拟变得如此复杂以至于它破坏了最初使用 Mockito 的目的地点。

所以我放弃并开始使用 Android 单元测试帮助程序类(AndroidTestCase、ActivityUnitTestCase、...)。我很沮丧,因为我现在不得不依赖模拟器,这意味着测试执行缓慢。也许 Mockito 在这种类型的测试中仍然占有一席之地。它可能对模拟外部数据源之类的东西很有用。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多