我正在为简单方法编写单元测试,应该返回包含项目的地图, 但每次地图都会返回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
,不是null
,getId()
返回值,与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()
在标准环境中运行时有效。
答案 0 :(得分:0)
更改
import android.util.ArrayMap;
至:
android.support.v4.util.ArrayMap;
解决了该问题。