私はエスプレッソ試験でダガーによって作成されたコンポーネントを注入したい。Dagger2注入によるエスプレッソ試験
コンポーネントは同じである必要があります。これは、短剣から何も上書きする必要はありません。
私は次のクラスがあります。
@Singleton
@Component(modules = arrayOf(AppModule::class, DatabaseModule::class, RepositoryModule::class))
interface TestComponent: AppComponent {
fun inject(accountRepositoryTest: AccountRepositoryTest)
}
しかし、短剣決して:私は私のメインのDaggerComponentクラスにAccountRepositoryTestを追加することはできませんので
@RunWith(AndroidJUnit4.class)
public class AccountRepositoryTest {
@Inject
AccountRepository repository;
@Before
public void setUp() throws Exception {
new DaggerTestComponent().builder().build().inject(this);
}
}
を、私は私のandroidTestsフォルダ内の別のコンポーネントクラスを作成しましたTestComponentインターフェイスからComponentClassを生成します。コードをコンパイルすると、私はいつもこのエラーを受け取ります。
私が行にコメントすると、私のコードがコンパイルされるので、ダガーがクラスを生成するのを防ぐのはこれだけだと確信しています。
私の質問は、どのようにしてandroidTestsフォルダに定義されたインターフェースからコンポーネントクラスを生成させるのですか?