Android 中的单元测试

Unit-Testing in Android

我为一个应用程序编写了很多代码,但我没有使用模型-视图-演示器方法。我需要为应用程序做单元测试。我一直在四处寻找教程,许多人要么使用静态方法,要么使用 MVP。我应该将我的所有代码更改为 MVP 还是有更简单的方法来使单元测试工作而不使我的方法和变量静态化?

我打算使用 Mockito 和 JUnit4。我在 AndroidX 上开发。

所使用的架构(MVP 或任何其他架构)与单元测试无关。更重要的是,测试典型的对象实例比静态方法或变量更容易。

你必须考虑的唯一一件事(也是一个非常重要的事情)是不要将纯粹的 Java 相关代码与 Android 相关代码混合在一起,这样你就可以进行单元测试所有 Java 对象与 Mockito 和 JUnit,并可能使用 Espresso 或 Robolectric 为 Android 相关对象定义集成测试。关注点分离 (SoC) 非常重要,尤其是在处理像 Android 这样的复杂框架时。当然,架构模型和模式可以帮助您遵循 SoC,但您不必遵循任何模型或模式就可以拥有 SoC,因为它可以(并且应该)存在于任何代码段中。

为什么您现在不能使用 Mockito 对任何 Java 对象进行单元测试?

我建议将所有 核心 代码放入具有 gradle 构建文件的桌面项目中。将 android 特定内容放入 android 工作室。

这使得对核心代码进行单元测试变得非常快速和容易。