我为一个应用程序编写了很多代码,但是我没有使用Model-View-Presenter方法。我需要对该应用进行单元测试。我一直在寻找教程,很多人要么将他们的方法静态化,要么使用MVP。我应该将我的所有代码都更改为MVP,还是有一种更简单的方法来使单元测试正常工作而又不使方法和变量保持静态?
我打算使用Mockito和JUnit4。我正在AndroidX上开发。
答案 0 :(得分:0)
所使用的架构(MVP或任何其他架构)与单元测试无关。而且,测试典型对象实例比静态方法或变量还要容易。
您唯一需要考虑的事情(也是非常重要的事情)是不要将纯Java相关代码与Android相关代码混合使用,因此您将能够使用Mockito和JUnit对所有Java对象进行单元测试,也许使用Espresso或Robolectric定义与Android相关的对象的集成测试。关注点分离(SoC)确实很重要,特别是与Android之类的复杂框架一起使用时。架构模型和模式当然可以帮助您遵循SoC,但是拥有SoC并不需要遵循任何模型或模式,因为它可以(并且应该)存在于任何代码段中。
为什么现在不能使用Mockito对任何Java对象进行单元测试?
答案 1 :(得分:0)
我建议将所有 core 代码放入带有gradle构建文件的桌面项目中。将特定于Android的东西放入android studio。
这使单元测试核心代码变得非常快速和容易。