问题标签 [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.
android - 使用 Robolectric 测试打开原始资源
我有一个扩展 SQLiteOpenHelper 的类,它打开一个 xml 文件来填充 SQLite 数据库。我正在为它创建单元测试,但被困在我需要打开 xml 输入资源的地方:
调试它,我可以看到 context.getResources() 是非空的并且是一个影子对象,但是 context.getResources().getXml(R.xml.sample_input) 返回一个空值。
阅读周围我看到人们提到我需要创建一个影子资源,但我没有看到任何地方解释如何为这样的案例执行此操作。
如果它有帮助,这就是我的自定义测试运行器类目前的样子
为了使资源在我的测试中发挥作用,我缺少什么?
android - Getting NullPointerException Using Robolectric to Unit Test Android Activity
I am developing an Android app with several Activity classes. I am using Robolectric for unit testing. In the test setup I call onCreate(null) in the Activity being tested:
The problem is, the onCreate method for the Activity I'm testing calls:
Execution of this line of code produces a java.lang.NullPointerException error and the tests do not run. Any ideas, or additional code you'd like to examine?
android - Robolectric:如何测试 SherlockActivity
我正在尝试对扩展 SherlockActivity 的 Activity 运行测试。我阅读了有关使用 ActionBarSherlock 测试活动的解决方案的所有信息,并尝试遵循https://github.com/passy/absshadow-sample
这就是我目前正在做的事情:
自定义测试运行器:
影子夏洛克活动:
由于某种原因,它的失败与此有关:
我的活动确实setContentView
先调用,然后再调用findViewById
。
奇怪的是,无论我在影子实现中做setContentView
什么,似乎都没有发生任何事情(例如,抛出 a NullPojnterException
)。我的影子确实被注册了,就好像我试图覆盖的实现onCreate
并在那里抛出异常一样,它确实有效。
我在这里想念什么?
android - Robolectric 无法膨胀 DialogFragment 中的视图
我正在尝试测试 a 的以下方法DialogFragment
:
该populateViews()
方法如下所示:
现在,在测试方法中看起来是这样的:
这是一个例外:
Views
没有充气,测试失败。这个问题有什么解决方法吗?
intellij-idea - 如何为特定的 Robolectric 测试禁用 jMockit 实例化?
我的许多 Android 单元测试都是用 Robolectric 编写的,但它非常有限,我想使用 jMockit 进行一些测试。
问题是每当 jMockit 实例化类时,Robolectric 测试运行程序都会失败。
我发现可以通过将系统属性“jmockit-mockParameters”设置为“annotated”来告诉 jMockit 仅实例化带注释的类 - http://code.google.com/p/jmockit/source/detail?r=2066
我正在使用 Intellij IDEA 并添加到测试运行配置 VM 选项-Djmockit-mockParameters=annotated
中,但它不起作用..
如何正确设置此系统属性?
android - Robolectric:使用 ViewHolder 模式测试 ListView 导致 NullPointerException
我有一个ListActivity
它的适配器实现了 ViewHolder 模式。
适配器和视图:
当我在这门课上运行 Robolectric 测试时,我得到了NullPointerException
和holder.name.setText
线holder.address.setText
。
我的猜测是 Robolectric 不能row.findViewById
正确处理。
我该如何解决?
这是一个例外:
android - 如何使用 robolectric 覆盖注入的 @Singleton 类?
我有一个片段,我正在尝试使用使用 @Singleton api 类的 Robolectric(和 Mockito)进行测试。我试图以一种可以自定义每个测试的响应的方式来模拟单例。这是我的片段引用的 API 类:
这是我正在尝试设置的测试类:
但是,当我运行测试时,我得到以下信息:
根据我对 roboguice 的了解,由于某种原因,它似乎无法用 ShadowViewGroup 注入“shadowViewGroup”,但我不知道为什么。如果我以错误的方式解决这个问题,请让我知道,但这似乎应该有效。
你们都可以告诉我:1)为什么我的测试不起作用或 2)注入类使用的自定义单例的更好方法?
android - 从 IntelliJ 运行 Robolectric 测试会导致 OutOfMemory
我正在尝试按照此处的示例从使用 Robolectric 的 IntelliJ 运行单元测试 :: http://pivotal.github.com/robolectric/intellij-quick-start.html
为 Junit4 添加了 Robolectric 罐子和罐子。当测试运行时,我看到以下输出 >>
用谷歌搜索并发现了一些我需要指定一些 vm args 的建议。这篇文章描述了一个与 Eclipse java 堆空间类似的问题。这篇文章涉及将 Robolectric 与 Maven 项目结合使用。我读过在 Maven 项目中使用 Robolectric 更容易,但我选择不这样做,因为我的 Android 项目对 Maven 没有其他用途。
如果有人对这里的问题有任何智慧,将不胜感激。
android - 当文件不在目录 res/layout/ 中时,Robolectric 1.1 无法加载布局文件
当我在 robolectric 1.1 中运行测试时,在扩展布局文件时会发生以下错误:
有谁知道为什么会发生这个错误?据我所见,在 robolectric 1.1 版中,加载布局文件的方式没有改变,它搜索文件夹 layout/:
但是如果布局文件在另一个目录中(例如layout-normal-hdpi),就会出现这个错误..
有谁知道任何解决方案?
android - 如果存在自定义视图,Robolectric 无法扩展布局文件
这就是我的测试方法的样子:
关于Activity.onCreate(null); 的行 运行此测试时引发以下异常
只有当我从 about.xml 布局文件中评论以下视图(自定义 RelativeLayout)时,我的测试才能完美运行:
我无法从 xml 文件中删除此视图,因为我也需要对其进行测试。有谁知道如何解决它?
谢谢