【问题标题】:Unit test - Uri is always null单元测试 - Uri 始终为空
【发布时间】:2022-11-26 15:57:52
【问题描述】:

我有实体:

data class BaseItem(
    val id: Long = 0,
    val name: String = "",
    val description: String = "",
    val uri: Uri = Uri.EMPTY,
    val active: Boolean = true,
    val done: Boolean = false,
    val date: LocalDate? = null,
    val plantId: Long = 0
)

和我想测试的 viewModel 方法:

fun getEmptyUiState(): Pair<BaseItem, List<BaseItem>> {
    return Pair(BaseItem(), listOf<BaseItem>())
}

测试方法:

@Test
fun getEmptyUiState() {
    val emptyUiState = viewModel.getEmptyUiState()
    assertThat(emptyUiState).isEqualTo(Pair(BaseItem(), listOf<BaseItem>()))
}

我总是得到: EMPTY 不能为空 java.lang.NullPointerException: EMPTY 不能为空 在 com.rachapps.uielements.dto.BaseItem.(BaseItem.kt:11)

【问题讨论】:

    标签: android unit-testing kotlin mockito


    【解决方案1】:

    不幸的是,Uri 是 Android SDK 的一部分,无法使用单元测试轻松进行测试。

    唯一的解决方案是使用 PowerMock,如下所述: https://stackoverflow.com/a/34152256/2310221

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      相关资源
      最近更新 更多