问题标签 [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 投票
6 回答
5977 浏览

android - Robolectric+Eclipse 找不到资源?

我刚刚为我的 Android 应用程序配置了一个测试项目以使用 Robolectric。我遵循了Eclipse 快速入门。执行我简单的第一个测试时引发异常。

测试如下。

似乎找不到Android./res文件夹。${workspace_loc:teldir-android}正如指南所说,我将 JUnit 配置指向。这使得 Eclipse 可以找到AndroidManifest.xml,避免其他错误,恕我直言。

为了避免这个异常,我还添加了./res文件夹作为我的 Android 应用程序的源文件夹,清理并重新启动了所有文件夹,但引发了相同的异常。

我究竟做错了什么?

0 投票
1 回答
1574 浏览

android - Android / Robolectric 框架 - 实例化的活动在 getResource 上返回 null

这与使用 Robolectric 框架在 android 上进行单元测试有关。我在正常运行时没有问题的代码上出现空指针异常。我刚开始使用机器人电动车,所以它可能很简单。

这是测试的调用代码:

这是在 InitUtils 中调用的方法,它崩溃了

/** * 将 XML 加载到 {@see mQuestions} 类成员变量中 * */

我需要做一些特别的事情来检索资源吗?

0 投票
1 回答
1691 浏览

android - Robolectric NoClassDefFoundError 与 org.apache 包

我们正在尝试将 robolectric 集成到我们的项目中,但遇到了一些意想不到的问题。

当我们不使用 Robolectric 时,该项目编译得很好。但是,在使用 Robolectric 运行简单测试时,我们在 org.apache.http 包中遇到了 NoClassDefFoundError。

我们正在使用 maven 来构建我们的项目,并且我们已经包含了 http-client 4.1(因为我们依赖于 apache 库中的 http-mime 4.1)。

由于 Robolectric jar 默认包含 httpclient 4.0.3,我们无法理解为什么它找不到 http 类。我们假设它与 AndroidTranslator 试图修改字节码有关(与 dalvik jvm 兼容?)

如果有人能对此事有所了解,我们将不胜感激。

0 投票
8 回答
25948 浏览

android - 使用 Robolectric 测试该按钮启动 Activity

嗨,我有以下代码:

但我不知道如何测试按下 pressMeButton 启动了一个新的 Activity。实际上确实如此,但是如何为这个事实编写正确的 Robolectric 单元测试呢?

0 投票
4 回答
7923 浏览

android - 如何在 Android Robolectric 测试中强制更改配置?

我正在使用 robolectric 来使我的 android 单元测试足够快以有用。我想在屏幕方向改变以模拟常见的现实世界用例时测试我编写的代码是否有效。

具体来说,我正在测试的是对服务器的异步 http 调用,并在获取结果后解析了一些 xml。我对所有工作都进行了单元测试,但无法弄清楚如何模拟屏幕旋转。任何导致活动重新创建自身的状态变化都很好,它不一定是屏幕旋转。

使用模拟器的解决方案不是一个选项,因为我每分钟运行几次测试并且它们必须在 2 秒内运行。如果可能的话,我也希望它与 roboguice 一起工作。

谢谢。

0 投票
1 回答
843 浏览

android - Robolectric 自定义阴影对象

OOTB,Robolectric不能很好地支持语言环境。因此,如果您的应用程序依赖于语言环境(如果它们是正确的,那么很多应用程序都是如此),这可能是一个巨大的痛苦。长话短说,我创建了自己的 ShadowFooGeocoder 和 ShadowFooAddress 来模拟我想要的语言环境。它们基本上是对现有阴影的重新实现。

但是,当我这样绑定我的类时:bindShadowClass(ShadowFooGeocoder.class),效果很好。在运行时,返回正确的阴影。问题是我想在这个对象上设置模拟,但我不确定如何。shadowOf(instance) 其中instance 是注入的GeoCoder 返回ShadowGeoCoder。我试过直接使用 ShadowWrangler,但这也返回了 ShadowGeocoder。

如何获得通过 bindShadowClass(...) 调用绑定的阴影类,以便设置期望(模拟)?

注意:这是对 Robolectric 小组的相同问题的转贴。我在这里发帖是因为我让任何人回答小组问题的成功率相当低。我希望这里有更好的结果。

0 投票
2 回答
220 浏览

java - Android Java 静态泛型调用

我正在使用 Robolectric,在Robolectric 类中有一个静态方法:

我有很长一段时间的 C# 泛型背景,所以我可能会错误地思考这个问题。我的第一直觉是这样利用它:

但是,这不会编译(另外,对我和我的 C# 泛型背景来说,它看起来不正确)。

我怎样才能使用这种方法?

该方法的来源位于此处。

0 投票
2 回答
1725 浏览

android - 将 Google Analytics 与 Robolectric 一起使用时出现 SQLException(或“尝试在 Robolectric 中使用 SQLite3”)

我正在使用 robolectric 来测试使用 Google Analytics 的活动。不幸的是,每当我尝试启动活动时,我都会收到以下异常

问题是 Android 使用 SQLite 数据库,但 robolectric 使用的是 H2,它支持稍微不同的 SQL 风格。

解决此问题的最简单方法是什么?

0 投票
1 回答
998 浏览

android - ProgressBar 的 Robolectric 问题

当 Robolectric 尝试为具有 ProgressBar 的活动调用 onCreate 时,我不断收到 RuntimeException。我已将问题本地化到布局 xml 文件中的此块。一旦我删除它并重新运行测试,一切正常。

这是完整的堆栈跟踪:

我正在使用 github 头(1.0-RC2),因为我认为 ShadowProgressBar 会帮助我,但它似乎没有,但我可能没有正确使用它。

我还认为 id 或样式导致了问题,但在 XML 中删除它们并没有阻止异常。

任何帮助,将不胜感激。


更新

我将进度条xml更改为:

它奏效了。

0 投票
0 回答
136 浏览

android - 集成 Robolectric 和 JDave

我想知道是否有一种简单的方法可以让这两个框架一起工作,真的很喜欢 JDave BDD 语法和 Robolectric 框架来在 android 环境之外进行测试。

这可能吗,每个人都有自己的自定义 TestRunner,有没有其他人尝试过这样做?它可以以简单的方式实现吗?