Когда мы используем Dagger и Kotlin, нам понадобится следующее в нашей зависимости build.gradle
kapt 'com.google.dagger:dagger-compiler:2.0' compile 'com.google.dagger:dagger:2.0' provided 'org.glassfish:javax.annotation:10.0-b28'
Как указано в http://www.beyondtechnicallycorrect.com/2015/12/30/android-kotlin-dagger/
Когда я пытаюсь выполнить тестирование с использованием кинжала и DaggerTestComponent.builder()
в соответствии с https://labs.ribot.co.uk/fast-and-reliable-ui-tests-on-android-17c261b8220c#.o3efc5knx или даже https://medium.com/@fabioCollini/android-testing-using-dagger-2-mockito-and-a-custom-junit-rule-c8487ed01b56#.hxtytfns3 , на языке Котлин, но имеют следующую ошибку
Error:(14, 25) Unresolved reference: DaggerTestComponent
Я нашел https://stackoverflow.com/a/36231516/3286489, в котором объясняется, как получить созданный DaggerTestComponent, и попробуйте поставить ниже в моей зависимости.
androidTestApt 'com.google.dagger:dagger-compiler:2.0.1'
По-видимому, я думаю, что это для Java, а не для Kotlin, поэтому проблема сохраняется. Есть ли версия Котлина? Как получить мой DaggerTestComponent
сгенерированный в моем проекте Kotlin?
Нашел ответ от канала Котлин Слак. Спасибо Кирилл Рахман.
Это (для инструментального теста)
kaptAndroidTest 'com.google.dagger:dagger-compiler:2.0.2'
или (для единичного теста)
kaptTest 'com.google.dagger:dagger-compiler:2.0.2'