私は、グラデルプロジェクトの形でアンドロイドコンポーネントを構築しています。 espressoフレームワークを使用してコンポーネントのUIをいくつかの設定でテストするために、私はソースセットにTestActivity
を持っています。ファイルツリー明確にするandroidTestとテストの間で共有コードを整理する
:
src/
androidTest/
java/my.package/
TestActivity.kt
...
res/layout/
my_test_activitity.xml
test/
java/my.package/
MyUnitTests.kt
を今私は私のユニットテストの一部についてrobolectricの使用を開始し、また、そこから私のTestActivity
をテストしたいです。 興味深いことに、AndroidのメーカーはMyUnitTests.kt
にするとき、私のセットアップRobolectricを文句はありません:
val activity = Robolectric.setupActivity(TestActivity::class.java) // no error
しかし、私はユニットテストを実行しようとすると、Gradleでは、このエラーを私に提示している:
e: src/test/java/my.package/MyUnitTests.kt: Unresolved reference: TestActivity
マイソースコードのtest
ソースセットには、androidTest
ソースセットへのアクセス権がないと推測されます。
どうすればいいですか(test
からandroidTest
のクラスとリソースにアクセスできます)インストルメンテーションテストとユニットテストの間でコードを共有するとき、これは正しいアプローチですか、それとも良い方法がありますか?