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

android - Robolectric - ShadowCanvas - InvocationPlan.toString() 上的 NullPointerException

尝试执行 ShadowCanvas.getHeight() 时,我在 ShadowWrangler.InvocationPlan.toString() 中收到 NullPointerException

我的应用程序代码:

抛出异常:

方法引发了“java.lang.NullPointerException”异常。无法评估 com.xtremelabs.robolectric.bytecode.ShadowWrangler$InvocationPlan.toString()

任何想法我做错了什么?

0 投票
3 回答
14658 浏览

android - 如何使用 Mockito 和 Robolectric 模拟上下文?

这是我的活动片段:

有了上面的注释,我可以愉快地创建和执行单元测试,如下所示:

但是,如果我new InitialisationTask(this).execute();在我的活动中取消注释该行,我的测试开始失败,很可能是因为对this.

模拟上下文的最佳方法是什么?

我试图添加contextMock = mock(Context.class);到我的setUp()但是我不确定如何将这个模拟设置为“进入”searchActivity

谢谢

0 投票
1 回答
4423 浏览

android - Robolectric 测试活动创建,包括意图附加功能

我有一项活动可以从临时演员中获得一个 pojo,如下所示:

我很难使用 Robolectric 对此进行测试,我相信我需要结合使用 ShadowIntents 和 ShadowActivities,但是文档有点薄,关于这个特定场景的任何有用的教程都相当稀少。

到目前为止,这是我想出的:

当我执行这些测试时,我不断收到一个空指针,在getIntent().getExtras()我的活动行中,我假设我用意图模拟活动的过程是不正确的。

有人可以帮忙吗?

谢谢

0 投票
1 回答
692 浏览

java - robolectric 测试中的链接活动

我正在尝试在交互活动通信中推送我的测试,并检查例如在正确登录后,我产生了正确的活动(来自 2 个可能的活动)。

这是我的代码的样子:

我的问题是我无法从 shadowintent 中检索已启动的活动。有没有办法我可以实现这样的目标?此外,我没有看到任何探索活动的痕迹,我想知道 Robolectric 是否正在努力对每个产卵过程进行沙箱处理。我真的很喜欢 robolectric 中的链式活动测试示例。谢谢。

0 投票
2 回答
3991 浏览

android - 不能将 PowerMock 与 Robolectric 一起使用

正如此链接中所讨论的 - https://groups.google.com/group/powermock/browse_thread/thread/25ba2b85d9e576f4,我尝试将 PowerMock 与 Robolectric 一起使用来模拟静态方法。但它抛出了一些难以理解的异常。

下面是我的测试课:

运行测试会产生以下异常:

如果我context从类中删除该字段并将其替换new RoboActivity()为代码中的其他位置,则会引发以下异常:

上述异常似乎表明 Robolectric 无法创建应用程序上下文。关于如何让两者一起工作的任何想法?

0 投票
2 回答
4145 浏览

java - 如何测试远程androidaidl服务

我有一个与远程android服务交互的小应用程序。我想在单元测试中模拟该服务。我使用Robolectric以及JUnit其他测试用例和阴影,但我不知道如何处理远程服务。

使用与真实服务相同的包创建和启动测试服务并使用相同的导出方法是否足够aidl

由于我没有该服务的代码,我假设我不能使用需要实际类RobolectricShadowService 。

非常感谢。

0 投票
3 回答
5316 浏览

android - 如何测试意图已被广播

单击“记录”按钮时,我正在广播意图。传递一个布尔变量,它显示是否开始录制。生成意图的代码是:

为了测试这段代码,我在测试中注册了一个接收器。收到了意图,但传递的变量不一样。如果我调试代码,我可以看到该值与发送的值相同,但是当我得到它时,它的值不同。

我还针对实际意图而不是其影子进行了测试,但结果相同

0 投票
0 回答
262 浏览

google-analytics - 在 Android 中使用 Robolectric 和 Google Analytics

我只是在针对使用GoogleAnalytics 1.4.2的 Android 应用程序试验 Robolectric 1.1 。

在每次调用 GoogleAnalyticsTracker trackPageView Robolectrics ShadowSQLiteDatabase 类时都会引发异常

该应用程序运行良好,如果我注释掉对 GoogleAnalyticsTracker 的调用,那么测试也运行良好。

我的设置中是否缺少某些内容或...

0 投票
1 回答
399 浏览

android - android robolectric:模拟 HTTP 请求 - 找不到类 Http

这可能是一个愚蠢的问题;但是,我没有选择,希望能得到帮助。我正在尝试使用 Robolectric 模拟文件下载。我指的是HttpTest.java类和 Robolectric博客文章

我的问题:Maven 找不到 HttpTest.java 代码中引用的 Http 类。我可以手动将它作为一个类放在同一个包中,但我最终在 Http 类的方法之一中得到了 NullPtrException。

我在网上搜索了解决方案。我还验证了 pom 文件中的模块配置。我那里确实有 com.pivotlabs。

有没有人得到这个工作?请让我知道我在这里缺少什么。

0 投票
7 回答
49615 浏览

android - 如何使用 Robolectric 测试碎片?

我知道有一个Robolectric.shadowOf(Fragment)方法和一个ShadowFragment类,以为它们没有在文档中列出,但我不能让它工作。

我正在使用 API 级别 13 (Honeycomb)。

谢谢。