Проблема в том, что тест даже не запускается и завершается сбоем со следующей ошибкой:
Error:(4, 36) Unresolved reference: testing
Error:(18, 52) Unresolved reference: InstantTaskExecutorRule
Error:Execution failed for task ':app:kaptGenerateStubsDebugAndroidTestKotlin'.
> Compilation error. See log for more details
Я пытался найти эту проблему в Google, но безуспешно.
Шаги, которые я уже пытался выполнить:< /p>
- Проверьте, установлена ли библиотека, содержащая InstantTaskExecutorRule, и могу ли я погрузиться в этот пакет (да, могу)
- Проверьте, находится ли мой тест в правильной папке (да, он находится в androidTest)
- Проверьте, правильно ли я запускаю свои тесты (возможно, я запустив их, щелкнув правой кнопкой мыши пакет pkgName (androidTest) и затем «Выполнить тесты в...»)
Важное примечание:
Если я прокомментирую строку, import android.arch.core.executor.testing.InstantTaskExecutorRule и весь код, связанный с InstantTaskExecutorRule (это означает, что вся логика теста будет пустой) и поместите, например, простое утверждение, тогда все будет работать нормально.
Но я хочу использовать именно этот InstantTaskExecutorRule и хотел бы знать, в чем на самом деле проблема и как ее решить, или хотя бы знать, где мне искать и что.
Вот мой тестовый код:
import android.arch.core.executor.testing.InstantTaskExecutorRule
import android.arch.persistence.room.Room
import android.support.test.InstrumentationRegistry
import android.support.test.runner.AndroidJUnit4
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import com.myapp.storage.base.AppDataBase
@RunWith(AndroidJUnit4::class)
class UserDaoTest{
@JvmField @Rule val instantTaskExecutorRule = InstantTaskExecutorRule()
private lateinit var db: AppDataBase
@Before
@Throws(Exception::class)
fun setUp(){
db = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getContext(), AppDataBase::class.java)
.allowMainThreadQueries()
.build()
}
@After
fun closeDB(){
db.close()
}
@Test
fun getUsersWhenNoUserInserted(){
db.userDao().allUsers()
.test().assertNoValues()
}
}
Подробнее здесь: https://stackoverflow.com/questions/489 ... ce-testing
Мобильная версия