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