我正在为简单方法编写单元测试,该方法应返回包含项目的地图,
但每次地图都会返回0个项目。

测试在科特林

@Test
fun `convertToMap`() {
  val items = listOf(Item(ID, false))
  val map = viewModel.convertToMap(items)
  assertThat(map[ID]).isFalse()
}


由于地图中没有任何项目,因此该测试失败。

代码在Java中

public Map<String, Boolean> convertToMap(List<Item> items) {
  Map<String, Boolean> itemsMap = new ArrayMap<>();
  for (Item item: items) {
    itemsMap.put(item.getId(), item.isEnabled());
  }
  return itemsMap;
}


List<Item> items包含item,不是nullgetId()返回值,与isEnabled()相同,

我已经调试了每个放置不增加地图大小的方法。 (项目未添加到地图)

为测试添加了依赖项:

testImplementation 'junit:junit:4.12'
testImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation "org.mockito:mockito-core:${mockito_core}"
testImplementation "org.mockito:mockito-inline:${mockito_kotlin_inline}"
testImplementation "org.robolectric:robolectric:${robolectric}"
testImplementation "com.google.truth:truth:${google_truth}"
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}"


编辑:为了清楚起见,convertToMap()在标准环境中运行时有效。

最佳答案



import android.util.ArrayMap;


至:

android.support.v4.util.ArrayMap;


解决了这个问题。

07-24 09:49
查看更多