gpt4 book ai didi

android - 机器人安装

转载 作者:太空宇宙 更新时间:2023-11-03 11:58:02 26 4
gpt4 key购买 nike

我正在尝试按照 thecodepath 启动并运行 Robolectric github上的教程。但是,在运行测试时,eclipse 会尝试下载 org/robolectric/android-all/4.3_r2-robolectric-0/android-all-4.3_r2-robolectric-0.jar。这个 30+ mb 的 .jar 文件到底是做什么用的?是否应该替换教程中的 android.jar 文件?

最佳答案

让我先问一个问题:为什么我们需要 Robolectric 来对 Android 进行单元测试?

答案是 android.jar 仅随类契约(Contract)和实用程序方法一起提供。这意味着这个 jar 中的每个方法、每个函数和构造函数只有一行代码:

throw new RuntimeException("Stub!");

您只能针对此 jar 编译您的代码,而绝不能在桌面 JVM 上运行。如果您尝试运行,那么您将在尝试实例化 android 类或调用任何 android 实用程序方法时立即抛出异常。

Robolectric 试图解决这个问题。从一开始它就定制了 ClassLoader 并且对 android 代码的每次调用都被替换为 Robolectric 实现。这让我们有可能在桌面 JVM 上测试我们的代码。但这很难重新实现整个 android,而且当您针对设备上存在的不同内容进行测试时,您会陷入困境。

所以策略从Robolectric版本2改变了。它尝试尽可能多地使用从一开始就开源的android源代码。这就是为什么第一次运行测试 Robolectric 会下载并缓存自己的 android.jar,它是从 android 源代码编译而来的。这样做是为了确保我们的测试环境行为与我们在设备上的行为接近。

我建议您阅读更多关于 Robolectricblog , google group .您还可以在 slideshare 和 youtube 上找到大量关于它的演示文稿。我鼓励您在 github 上为 Robolectric 项目做出贡献。一旦您对它充满信心并希望回馈社区。

关于android - 机器人安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20708144/

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