gpt4 book ai didi

android - 带有 Mockito 或 Easy Mock 的 Robotium

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:10 24 4
gpt4 key购买 nike

我是 Android 测试的新手,如果你们中的一些人能帮助我,我将不胜感激。我正在使用 robotium 作为自动化测试框架(到目前为止还不错),但我不知道如何使用 mockito 或 Easy Mock 为我的测试添加一些模拟。我真的坚持这一点。有人可以给我一些关于如何实现这一点的简单示例吗?

提前致谢

最佳答案

简答/意见

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

长答案

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

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

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

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

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

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

关于android - 带有 Mockito 或 Easy Mock 的 Robotium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13604025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com