【问题标题】:Reflection - private method反射——私有方法
【发布时间】:2022-11-27 18:09:23
【问题描述】:

在我的测试中,我有:

@Before
fun setUp() {
    savedStateHandle = SavedStateHandle()
    saveImageUseCase = Mockito.mock(SaveImageUseCase::class.java)
    repo = FakeRepository()
    viewModel = AreaEditViewModel(repo, savedStateHandle, saveImageUseCase)
    }

@Test
fun setUpArea() = runTest {
    val method = viewModel.javaClass.getDeclaredMethod("setUpArea", Long::class.java)
    method.isAccessible = true
    method.invoke(viewModel, 2L)

...
    }

在我的视图模型中:

private suspend fun setUpArea(areaId: Long) {
    repository.getAreaById(areaId).first() {
        savedStateHandle["area"] = it
        true
    }
}

当我运行测试时,我得到: com.rachapps.area_feature.viewModel.AreaEditViewModel.setUpArea(长) java.lang.NoSuchMethodException: com.rachapps.area_feature.viewModel.AreaEditViewModel.setUpArea(长) 在 java.base/java.lang.Class.getDeclaredMethod(Class.java:2707) 在 com.rachapps.area_feature.viewModel.AreaEditViewModelTest$setUpArea$1.invokeSuspend(AreaEditViewModelTest.kt:61)

【问题讨论】:

    标签: android kotlin reflection


    【解决方案1】:

    正是因为“暂停” 我需要使用 Kotlin 反射

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 1970-01-01
      • 2013-04-23
      • 2010-12-21
      • 1970-01-01
      • 2012-07-14
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多