【问题标题】:Instrumented test仪器化测试
【发布时间】:2022-11-11 10:04:53
【问题描述】:

我正在尝试运行测试:

@HiltAndroidTest
class ActionDaoTest {

@get : Rule
var hiltRule = HiltAndroidRule(this)

@get : Rule
var instantTaskExecutorRule = InstantTaskExecutorRule()

@Inject
@Named("test_db")
lateinit var database: MyDatabase

private lateinit var actionDao: ActionDao

@Before
fun setup() {
    hiltRule.inject()
    actionDao = database.actionDao()
}

@After
fun teardown(){
    database.close()
}

@Test
fun insert_assetTrue() = runTest{
    val action = ActionEntity("name","description", LocalDate.now())
    actionDao.insert(action)
    val actionList= actionDao.selectAll().first()
    assertThat(actionList).contains(action)
}

}

我收到一个错误:

java.lang.NoSuchMethodError: No virtual method find(Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/internal/ThreadSafeHeapNode;在 Lkotlinx/coroutines/internal/ThreadSafeHeap 类中;或其超类

【问题讨论】:

    标签: android unit-testing


    【解决方案1】:

    我降级了
    'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4' 至 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0' 现在它可以工作了......

    【讨论】:

      【解决方案2】:

      find 方法在 coroutine-core 模块中定义。就我而言,我错过了在我的依赖项中添加该模块。一旦我像这样设置它,它就起作用了:

      implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4"
      androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-08
        • 2013-05-03
        • 1970-01-01
        • 1970-01-01
        • 2014-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多