当前位置: 首页 > 知识库问答 >
问题:

Robolectric 2.0在测试时不创建视图

牛骞仕
2023-03-14

我正在尝试用robolectric和roboguice进行测试。我成功地注入和测试了类,但当我尝试测试活动时,似乎无法在测试环境中创建视图对象

我得到以下错误

testAttemptsLoginWhenSignInButtonIsClicked(com.clearc2.HomeActivityTest)经过的时间:2.234秒

共有2个答案

谷泽宇
2023-03-14

我也有过类似的错误,但问题是imeActionId,而不是imeOptions。从XML中删除imeActionId并将其设置为代码(但保留imeOptions)解决了此问题。

以下是我的错误,供搜索引擎爬虫参考,以便人们更容易找到答案:

android.view.InflateException: XML file app/build/intermediates/res/debug/layout/fragment_registration_form.xml 
line #-1 (sorry, not yet implemented): Error inflating class com.company.project.widgets.MyCustomEditTextView
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.NumberFormatException: For input string: "@0"
...

我猜Robolectic由于某种原因无法正确解析imeActionId。看起来它与此问题中描述的问题有关:为什么使用预定义的ID资源设置imeActionId会产生错误?

陶博涉
2023-03-14

发现了问题。Robolectic不喜欢在我的密码EditText上设置的android ime选项。我一删除这些行,测试就按预期运行了。

 类似资料:
  • 问题内容: 仅在不存在视图的情况下如何创建视图。如果确实存在,我想删除视图并重新定义它。我也不要警告或错误。 问题答案: 您将自己踢: 详细信息在这里。;-)

  • 启用minifyEnabled后,在我的gradle文件中启用ḿy应用程序继续崩溃。我已经搜索了很多,但我觉得与Proguard不太适应,我也不确定问题出在哪里。也许我需要添加更多的keep in proguard rules pro? build.gradle 前进的规则。赞成的意见 错误: 有什么想法吗?提前谢谢。

  • 在阅读dagger 2的文档时,我找不到一种简单的方法来在构建测试应用时提供依赖项。我找到的唯一线索是: 匕首2不支持覆盖。覆盖简单测试假货的模块可以创建模块的子类来模拟该行为。应该分解使用覆盖并依赖依赖依赖项注入的模块,以便将被覆盖的模块表示为两个模块之间的选择。 我不明白我将如何在Android上设置这样的配置,任何人都可以解释吗?

  • 视图概述 视图作为MVC模式中的终端环节,在web编程中负责dom结构的展示。grace 使用 php作为“天然模板“,您不必再去学习枯燥无聊的模板语法,系统更不必浪费资源去完成复杂的解析工作! 视图文件创建及命名规则 视图文件命名 : 1、控制器名称_方法名称.php //此种命名系统会进行自动展示 2、视图名称.php //需要手动调用 视图文件位置 : /分组文件夹/views/对应视图文件

  • 我有一个使用TestNG和Allure报告的设置,当我从IntelliJ运行测试时,它工作得很好。我看了一下运行配置,它所做的只是在执行测试之前进行一个构建。然后,该过程在allure-results文件夹中创建诱惑结果。 我看过这个问题(在Maven build上不会生成诱惑力结果),但这并没有解决我的问题。 我的pom文件少了什么吗?

  • 我正在跟踪这个代码库,当我右键单击。obj文件,然后选择“导入场景表单资源”。它不会创建sfa文件,并且会显示此错误 我安装插件直接从Android Studio(v4.0.1),谷歌场景是1.15.0我试图更新Android Studio到4.1,但这显示了 我该怎么解决这个问题?