Android的测试驱动开发

Android的测试驱动开发,android,testing,tdd,Android,Testing,Tdd,我们可以在Android中使用JUnit进行测试驱动开发吗?如果没有,是否有类似于JUnit的替代方案 我在谷歌上搜索了一下,也读了一篇SO帖子 看起来Android从来没有考虑过TDD。在开始学习TDD和同时进行Android开发之前,我想确定一下。是的,我们可以使用JUnit进行测试驱动开发。要启动,请参考以下内容 链接: 根据文档,我们可以使用junit.framework来完成单元测试。我认为您可以完全依赖JVM来运行测试。您可以使用JUnit4来测试POJO,Robolectric为您

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

我在谷歌上搜索了一下,也读了一篇SO帖子
看起来Android从来没有考虑过TDD。在开始学习TDD和同时进行Android开发之前,我想确定一下。是的,我们可以使用JUnit进行测试驱动开发。要启动,请参考以下内容 链接:
根据文档,我们可以使用junit.framework来完成单元测试。

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

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

视频将告诉你它为Android代码单元测试提供的几乎所有信息

更新: 有了Android studio支持和新的Android生态系统,现在单元测试可以作为一流的实践来完成。有关更多详细信息,请参阅


有两种很好的方法可以测试android代码。到目前为止,我发现最有效的方法是使用MVVM(模型-视图-视图-模型)或MVP(模型-视图-演示者)方法,在这种方法中,业务逻辑和演示逻辑与视图分离,可以轻松地进行单元测试。

以下是对问题空间的一些解释:

结论是你应该使用Robolectric。不幸的是,Robolectric的速度很慢,如果您在实用的层面上也遵循TDD,那么您将完成数百个测试,这些测试将运行10秒钟。这不是你想用TDD做的。TDD测试包最多应在几秒钟内运行

我的建议是:

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

通过这种方法,您的逻辑也将更加可移植

您的问题与您所指的问题有何不同?@rds-从那时起情况是否有所好转?我是一个初学者,我不想在没有适当研究的情况下进入这一领域。不过有一个问题——“你可以使用JUnit TestCase类在一个不调用Android API的类上进行单元测试。”我们如何处理这个问题?这就是为什么有
AndroidTestCase
,您可以使用它来测试依赖于Android的对象。问题是,在TDD方法中,测试必须很快,但在模拟器上部署/运行测试会使它们变慢。