Как правильно использовать testImplementation?

Мне нужно написать несколько тестов, вот что то такое

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
    @Test
    fun useAppContext() {
        val appContext = InstrumentationRegistry.getInstrumentation().targetContext
        assertEquals("ent.test", appContext.packageName)
    }
}

Для того, что это заработало я добавил вот такую зависимость

testImplementation "androidx.test.ext:junit-ktx:${project.test.JUnit}"

но все подсвечивается красным, зависимсть не распознана, меняю на

implementation "androidx.test.ext:junit-ktx:${project.test.JUnit}"

все работает

Насколько я понимаю, то для зависимостей тестовых нужно использовать testImplementation, чтоб не смешивать их с теми что пойдут в билд, но вопрос, почему когда использую testImplementation то зависимость не распознается?


Ответы (1 шт):

Автор решения: woesss
  • testImplementation - для локальных тестов (на ПК)
  • androidTestImplementation - для тестов на Андроиде

Код для этих тестов должен лежать в папках test и androidTest, соответственно.
Можете создать новый пустой проект - в шаблоне это всё есть с примерами обоих тестов

→ Ссылка