私はAndroid上でScalaの問題があるため、最近AndroidでProGuardを導入する必要がありました。未使用と思われるクラスを削除する縮小機能のためにProGuardが必要です。私は、クラスをテスト容易性に与えることの影響について非常に懸念しています。ProGuardでは、テスト戦略にどのような影響がありますか?
私は、Androidプラットフォーム上で完全に統合されたアプリケーションを実行するホストおよび受諾テストで実行される単体テストを作成します。
通常、私は比較的完全な単体テストカバレッジと不自然な受け入れテストカバレッジに満足しています。しかし、私のコードでは、Guiceの依存性注入を大量に使用しているので、これまでProGuardが予測することが難しい方法でコードを削除するのは私の経験でした。このため、バグを導入する可能性が非常に高いです。
これは、ある時点でクラスが見つからない可能性があるため、完全なカバレッジを達成する受入れ/プラットフォームテストを書く必要があると私に思います。
他にもこの体験がありますか?もしそうなら、あなたのテスト戦略は何ですか?経験を積むと、ProGuardが削除しているクラスが本当に不要になっていると自信が持てますか?
これは一般的には真実ですが、Facebook android SDKなどのような奇妙なライブラリを使用すると、奇妙な不一致に注意してください。それは一般的に物事を壊す。 –