java - 在没有模拟器的 Android 应用程序中对非 Android 特定代码进行单元测试

标签 java android unit-testing

Android新手,使用ADT

我的应用程序中有一些“纯”Java 的数字处理类 - 它们不依赖于 Android SDK 中的任何内容。理想情况下,我想在不启动(有点慢)模拟器的情况下测试它们。这可能吗?如果可以,如何实现?

根据我目前收集到的信息,Dalvik 编译和生成的类与“普通”JVM 预期的不同,这排除了常规 JUnit 测试 ( what happens if you try )。使用 Android SDK 中的 JUnit 启动模拟器。这就是我的 Google fu 让我失败的地方,因为每个人都专注于测试 UI。

最佳答案

Is that possible and if yes, how?

选项#1:按照 Mike B 的评论,将该代码移至具有自己的单元测试的单独 JAR 项目。

选项#2:使用 Robolectric在 JVM 上对这些类运行专门的测试。虽然 Robolectric 主要设计用于在 JVM 上测试 Android-y 代码,但我认为您没有理由不能将它也用于您的场景。

关于java - 在没有模拟器的 Android 应用程序中对非 Android 特定代码进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959878/

相关文章:

java - 不使用 @XMLRootElement 的 JAXB 部分解码元素

java - AlertDialog 的编辑文本中的 SharedPreferences

android - Firebase Auth 获取用户国家

unit-testing - 在哪里配置 Grails 单元测试日志记录

java - 如何在SpringSource Tool Suite中创建Roo Shell项目?

java - 不同dpi的径向渐变

android - anko bg 的替代品是什么?

javascript - 如何使用 ...spread 获取作为函数参数的函数的 "returns"?

unit-testing - 如果单元测试如此出色,为什么没有更多的公司这样做呢?

java - 无法单击位于不同框架中的单选按钮