【问题标题】:How to do plain vanilla junit tests in android? Getting error when doing如何在 android 中进行普通的 junit 测试?执行时出错
【发布时间】:2011-07-13 16:35:21
【问题描述】:

我想在不使用任何 android os 相关资源的 java 类上运行纯 junit 测试。然而;当我尝试在 Eclipse 中运行 junit 测试时,出现以下错误。

guarantee(_name_index != 0 && _signature_index != 0) 
    failed: bad constant pool index for fieldDescriptor

我使用 junit-4.8.2.jar 作为库资源。

我做错了什么。 我最终会设置一个单独的测试项目来测试android资源。

谢谢

【问题讨论】:

标签: android unit-testing junit


【解决方案1】:

我通过删除现有的 JUnit 运行配置并改用 Android JUnit 运行配置解决了这个问题。

当您尝试作为 JUnit 测试运行时,Eclipse 应该会询问您是要使用 Eclipse 运行器还是 Android 运行器。选择后者。

【讨论】:

    【解决方案2】:

    您不能在同一个项目中混合使用 JUnit 4 和 JUnit 3(包含在 android 中)。 为了使您的测试有意义,您应该在 Dalvik 上进行测试,否则与 JavaSE 的不兼容性可能会影响准确性。 作为一种解决方法,您可以创建一个单独的项目来测试您的独立类。

    【讨论】:

    • 在 dalvik 上进行测试会使测试周转时间增加 30 秒到一分钟。对于 TDD,这是一个不可接受的延迟。并且大量的测试不依赖于任何不寻常的库函数,因此不应该受到不兼容性的影响。是的,在 dalvik 下定期运行是必不可少的,但对于即时测试来说,这不是必需的。
    【解决方案3】:

    我同意,当您只想测试整个 android 应用程序之外的方法(这是非常可取的)时,使用 dalvik 是愚蠢的。也许只是创建一个单独的 java 项目是最好的选择并导入您想要测试的类。这似乎行得通。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 2018-11-24
      相关资源
      最近更新 更多