问题标签 [robolectric]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4038 浏览

android - 在 Android 设备上运行 Robolectric 测试的最佳方式

我有一个 Robolectric 测试项目设置,但我还想在我的设备上运行这些测试,以检查我没有被 JVM 与 Dalvik 实现差异所困扰。

与 robolectric 测试不同,我不会经常运行这些测试。我担心的是维护测试套件并验证实际设备功能的努力很少。

最好的方法是什么?


我目前拥有的:

我的 robolectric 测试项目作为测试用例 TestPackage。我使用测试用例 TestRoboOnAndroid 创建了一个 Android 测试项目。它创建一个 TestPackage 并为 TestPackage 中的每个测试提供一个测试。

现在,每次我向我的 robolectric 套件添加测试时,我都需要手动将它添加到我的设备套件中。有没有办法通过反射自动做到这一点?

junit.framework此外,Robolectric 使用 JUnit 4(默认情况下)而 Android 使用 JUnit 3。所以我必须使用 JUnit 3 样式(从而不是导入)编写我所有的 Robolectric 测试org.junit

0 投票
3 回答
5249 浏览

android - 使用 robolectric 时如何访问测试类中的资源

我已经制作了一个值的文本文件,我想用它在 res/raw 中进行测试
我想在测试中使用它们
我正在使用 robolectric
访问这些值的最佳方法是什么?
谢谢

0 投票
2 回答
1044 浏览

android - 如何让 Robolectric 与 Android-Release Archetype 一起工作?

我正在尝试让 Robolectric 与位于https://github.com/akquinet/android-archetypes/wiki/Android-release-archetype
的 Android-release-archetype 一起工作 到目前为止我没有运气
1. 我添加了对 POM 的 Robolectric 依赖。
2.我使用了“干净安装”的目标
然后我得到了这样的错误:

有人可以尝试让这个原型与 maven 一起工作并告诉我该怎么做吗?这是我的测试课:

这是我的父母POM:

这是子 POM:

谢谢

0 投票
4 回答
8482 浏览

android - 使用 Maven surefire 插件运行 Robolectric 测试时出现 ClassNotFoundException

我已经使用 Android Maven 集成在 Eclipse 中设置了一个项目,并使用 Robolectric 进行了一些测试。

当我在 Eclipse 中部署它们时,测试运行良好。但是,当我尝试使用Maven“安装”目标(这实际上是我在本地 Maven 存储库中需要的库)构建项目时,它在这些相同的测试中失败。

日志显示以下错误:

其中 (package) 当然是我的主包的名称。这是我的 POM 的相关部分:

如您所见,我尝试将“genDirectory”选项添加到 Maven Android 插件。但无济于事。

为了让surefire插件“看到” R类,我缺少什么?

还有一件事:我的代码实际上并未引用 R 类。

0 投票
2 回答
10450 浏览

unit-testing - 如何在 Gradle 中指定类路径排序

我需要在 testRuntime 配置中控制 jar 的顺序。

我必须确保 robolectric-xxjar 出现在 android.jar 之前,否则我会得到可怕的 RuntimeException("Stub!")。

我怎么做?

0 投票
3 回答
3346 浏览

android - 如何使用 Robolectric 获取当前活动?

假设我有一个活动 A,它从其onCreate()方法中启动另一个活动 B,期待结果。

如何使用 Robolectric 获得活动 B?

0 投票
5 回答
9689 浏览

android - 自定义阴影对象在 Robolectric 中究竟是如何工作的?

如果我为我的 Activity 编写自定义 Shadow,并将其注册到 RobolectricTestRunner,框架是否会在启动时使用我的自定义 Shadow 拦截 Activity?

谢谢。

0 投票
3 回答
15219 浏览

android - 在 Robolectric 中测试 SQLite 数据库

我正在尝试在我的 Android 应用程序中使用 Robolectric 测试一个简单的 SQLite 数据库。我输入了一些值,但是在读取它们时返回 0 行。

我正在使用 SQLiteOpenHelper 类来访问数据库。

在 robolectric 之外调试代码时,这可以按预期工作。我做错了什么还是无法使用 Robolectric 测试 SQlite 数据库?

0 投票
1 回答
977 浏览

android - 如果存在 AdMob 视图,Robolectric 无法扩展布局文件,有什么解决方法吗?

这是我启用 Robolectric 的 JUnit 测试类的一个片段:

运行我的测试时,该行mActivity.onCreate(null)会引发以下异常:

languageselection.xml如果我从我的布局文件中注释掉以下视图,它工作得非常好:

问题:对此有什么好的解决方法?我不想仅仅出于测试目的而禁用/启用广告。我不是在测试广告,但我不想为了测试其他元素(例如按钮)而删除它们。

谢谢

0 投票
6 回答
10633 浏览

android - 在 Robolectric 中模拟单击菜单项

在 Robolectric 中模拟按钮点击相当简单:

但是,我似乎无法弄清楚如何对菜单项做同样的事情。我在 中创建了一个菜单Activity.onCreateOptionsMenu,如何模拟单击其中一项?