質問: `Android Studio` の `Local Unit Test` でAndroidに依存しないコードのテストを書いているのですが、 テスト中のみ一部の依存ライブラリを使わないようにする設定は可能でしょうか? `build.gradle` には以下のように記述しているのですが、 ``` dependencies { compile 'org.slf4j:slf4j-android:1.7.20' testCompile 'org.slf4j:slf4j-api:1.7.20' } ``` Local Unit Test中にも前者のライブラリが使われてしまうため、そこで落ちてしまいます。 なにか方法をご存じの方がいましたらご教示ください。
回答: 一つの方法は、`org.slf4j:slf4j-android:1.7.20`を使わないproduct flavorを定義する事だと思います。そのライブラリを使用する部分をラッパークラスに移せば、依存を分離できます。 例えば、 `prodCompile 'org.slf4j:slf4j-android:1.7.20'` ``` productFlavors { stub { } ...// 他のproduct flavor prod { } } ``` コマンドラインからunit testを実行するなら、`testStubDebugUnitTest`で実行できます。Android Studioからなら、Build VariantがstubDebugの状態から実行です。 参考までに。