6

我们可以在 Android 中使用 JUnit 进行测试驱动开发吗?如果没有,是否有类似于 JUnit 的替代方法?

我在谷歌上搜索了一下,还阅读了一篇 SO 帖子Android 测试驱动开发 看起来 Android 从来没有考虑到 TDD。在开始学习 TDD 并同时进行 Android 开发之前,我想确定一下。

4

3 回答 3

7

我认为您可以完全依靠Robolectric在 JVM 中运行测试。您可以使用 JUnit4 来测试您的 POJO,而 Robolectric 为您提供测试 Android 组件的支持。

我也是 TDD for Android Development 的初学者。我发现 Robolectric 对测试我的代码非常有用。

视频将告诉您它为您提供的用于对 Android 代码进行单元测试的几乎所有内容。

更新:有了 Android Studio 的支持和新的 Android 生态系统,现在单元测试可以作为一流的实践来完成。有关详细信息,请参阅http://developer.android.com/training/testing/unit-testing/local-unit-tests.html

有几个很好的方法来测试驱动 android 代码。到目前为止我发现最有效的方法是使用 MVVM(model-view-viewmodel) 或 MVP(model-view-presenter) 方法,其中业务逻辑和表示逻辑与视图分离并且可以很容易地成为单元测试。

于 2013-04-15T20:12:51.983 回答
3

是的,我们可以使用 JUnit 进行测试驱动开发。要开始与您可以参考以下链接:http://developer.android.com/tools/testing/testing_android.html#JUnit 按照文档,我们可以使用 junit.framework 完成单元测试。

于 2012-12-04T11:03:45.143 回答
3

以下是对问题空间的一些解释:http ://www.techwell.com/2013/04/applying-test-driven-development-android-development

结论是你应该使用 Robolectric。不幸的是,Robolectric 很慢,如果你甚至在实用的层面上遵循 TDD,你最终会得到数百个测试,这将运行 10 秒。这不是你想用 TDD 做的。TDD 测试包最多应该在几秒钟内运行。

我的建议是:

  • 围绕仅调用 Android 类的 Android 类创建包装类。
  • 用纯 Java 编写您的应用程序逻辑。
  • 使用 Junit(或 TestNG 或任何你喜欢的东西)来测试你的模型/业务逻辑
  • 偶尔将 Robolectric 用于包装类(可能您不必使用)
  • (您可以编写使用多个类、Robolectric 等的集成测试,但只能在单独的持续集成服务器上运行,例如每小时一次)

使用这种方法,您的逻辑也将更加便携。

于 2013-09-02T13:07:11.090 回答