4

我有一个关于技术或方法的问题,我可以用它来快速简单地测试我的代码。最近,当我在做一个 android 项目时,我遇到了关于测试我的代码的困难和挫败感。每次我想测试我的代码时,我都必须重新编译整个项目并等待模拟器重新安装应用程序,这至少需要 40~50 秒才能检查一些代码是否正常工作。有没有什么方法可以编译或测试一小部分代码/1~2种方法,而不必每次都重新编译整个项目?还有哪一个是行业中最新和最广泛使用的?

======================================

附加问题。我已经对 Java 的 JUnit 测试进行了一些研究,但 JUnit 是我正在寻找的吗?或者是不同类型的测试技术

4

5 回答 5

1

你可以搜索一下 Robotium。它为您提供黑盒测试。

http://testdroid.com/tech/54/automated-ui-testing-android-applications-robotium

于 2012-07-11T12:14:02.663 回答
1

也许Robolectric是您正在寻找的。您可以使用 JUnit 仅测试不使用来自 android sdk 的方法的 java 代码。

于 2012-07-11T12:25:26.927 回答
0

你考虑过使用AndroidTestCase吗?JUnit 只能用于非 android 特定功能,但这适用于您的 Android 特定代码。

于 2012-07-11T12:32:29.560 回答
0

有一个非常详细的 android 测试帐户可在以下位置获得:

http://developer.android.com/tools/testing/testing_android.html

这包括基本测试和活动测试,并且建立在 JUnit 之上。

于 2012-07-11T13:34:25.450 回答
0

对于不想使用 Roboticum 之类的,但只坚持使用 Eclipse 内置 JUnit 测试的人,我建议这样做:

拥有三个项目:

  • 安卓项目
  • AndroidProject.test
  • AndroidProject.test.android

在您的 AndroidProject.test 项目中,您只测试专门使用 Java 库的模型、控制器等。所以没有 Android Logcats、Toasts 或Patterns.WEB_URL.matcher(url).matches())[ android.util.Patterns] 之类的东西(它验证一个字符串 URL)。

在您的 AndroidProject.test.android 项目中,您可以测试使用 Android 库(如上面提到的模式验证等)的活动、服务、模型类。

为了能够将 Eclipse Run As->JUnit Test用于您的 JUnit 测试项目,您必须进行一些设置,例如Android API从每个单独的测试类中删除,使用junit.framework.Assertorg.junit.Test导入等。有关重现的完整分步指南我为使它工作所做的工作,我参考了我自己制作的 Stackoverflow-post:

JUnit 测试 Android 类,而不必被迫启动(慢)模拟器。

于 2014-08-14T15:16:27.427 回答