由于Android上的Scala问题,我最近需要在Android上引入ProGuard。我需要ProGuard的缩小功能,它可以删除假定未使用的类。我非常担心删除类对可测试性的影响。现在,我编写了在主机上运行的单元测试和在Android平台上运行完全集成的应用程序的验收测试。有了ProGuard,对测试策略有什么影响?
通常,我会对相对完整的单元测试覆盖率和点差验收测试覆盖感到满意。但是,鉴于在我的代码中,我大量使用了Guice依赖注入,到目前为止,我的经验是ProGuard以难以预测的方式去除代码。因此,这很可能会导致我引入错误。
这使我相信我需要编写验收/平台测试,以实现全面覆盖,因为在任何时候,都可能存在缺失的类。
别人是否有此经历?如果是这样,你的测试策略是什么?或者凭借经验,您是否更加确信ProGuard正在移除的课程确实不需要?
这通常是修整的,但在使用糟糕的库时要小心怪异的不一致性,比如Facebook android SDK和类似的东西。它通常会破坏事物。 –