Неразрешенная ссылка: тестированиеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Неразрешенная ссылка: тестирование

Сообщение Anonymous »

Я пытаюсь написать простой интеграционный тест в своем текущем проекте Android, полностью написанном на Kotlin.

Проблема в том, что тест даже не запускается и завершается сбоем со следующей ошибкой:

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) и затем «Выполнить тесты в...»)
I' Я также пытался переименовать мои исходные каталоги в koltin из Java и установить правильные значения для sourceSets, но снова изменил их из-за безуспешности и посчитал, что это не причина.

Важное примечание:

Если я прокомментирую строку, 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»