【发布时间】:2014-12-08 08:56:02
【问题描述】:
在我看来,我从根本上误解了 Robolectric 的目的。我已经与它斗争了一个星期,到目前为止,收到一条新的错误消息被认为是取得了进展。我可以在活动中测试一些基本的东西,比如静态视图,但是当一些更复杂的事情开始发挥作用时,事情就会分崩离析。我不得不扩展 Robolectric 以支持具有某些参数的 3 方库、Appcompat 操作栏和许多其他非常耗时且没有真正记录在任何地方的东西,而且事情正在以非常缓慢的速度发展。我开始认为我以错误的方式使用它,它根本不应该做我想让它做的事情。
一般应用程序逻辑非常简单,因此没有太多要进行单元测试的内容,最复杂的部分在于 UI 和远程 API 调用。 Robolectric 是否应该让 Android 的单元测试比使用 JUnit 更痛苦,因为它可以在 JVM 上运行并支持一些 Android 类?也许像 Espresso 这样的黑盒行为测试框架会更适合我的需求?但是我们使用的是连续集成,而且 Robolectric 很不错,而且很容易设置以在 CI 服务器上运行测试,我有点想保持这种状态。
您使用 Robolectric 做什么?很多博客文章都推荐它用于“活动生命周期测试”,但由于我在 Android 世界中也是新手,我并不真正理解它的目的,特别是因为我正在测试的应用程序是纯纵向的.有人可以概述一下您使用 Robolectric 的用途,以及您是如何做到的,最好是使用代码示例,并解释这些测试为何以及如何重要?
【问题讨论】:
-
我认为你在the programmers exchange 会更好。这是关于概念性问题。
-
感谢您的建议,但那里有一个somewhat similar question,它没有非常相关的答案并且已关闭。在这里,我要求更多关于人们实际使用代码示例的特定用例。
标签: java android unit-testing junit robolectric