トップレベルの関数(クラスのメンバーではありません)を持つkotlinファイルがあります。これはJavaで静的関数を持つクラスにコンパイルされます。 ユニットテスト(プラットフォームに依存しない)と計測テスト(本番動作+エスプレッソアイドリングリソース)のために、この関数の異なる実装をしたいと思います。 同じファイルをprodとtestの同じパスに置くことができますが、testとandroidTestに置くとIDEが1つのソースセットのように見えますが、どの関数を使用したいかを解決できません。 トップレベルの関数を使用しているため、DIを使用してテスト済みのクラスに異なる実装を渡すことはできません。ユニットアンドインストゥルメンテーションテストのトップレベル関数の実装方法を教えてください。
テスト用のクラスの実装とトップレベルの関数用のandroidTestの実装が異なることはありますか?
ノー運がよければ
sourceSets {
androidTest {
java.srcDirs = ['src/androidTest/java']
java.exclude('src/test/java/util/CoroutinesUi.kt')
}
test {
java.srcDirs = ['src/test/java']
}
}
を試してみました。