我已经看过源代码了,我唯一想知道为什么两个版本都存在的唯一原因是不赞成使用?
今天,我正在使用parent.frame[x]
在存储库类中为其中一个viewModel类编写单元测试。我确实用假值初始化了ArrayMap,但是在调试时发现arrayMap的大小始终为零。
android.util.ArrayMap
但是当我将其更改为 arrayMap["key1"] = someValue
arrayMap["key2"] = someValue
arrayMap["key3"] = someValue
时,它可以正常工作。但是问题是我已经在存储库和viewModel类中使用了androidx.collection.ArrayMap
,现在我不想将其转换为android.util.ArrayMap
。
这是测试班。
androidx.collection.ArrayMap
有人可以解释一下为什么import android.util.ArrayMap
//import androidx.collection.ArrayMap // switching to this works fine
import org.junit.*
import org.junit.Assert.assertNotNull
import org.junit.runners.MethodSorters
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class AudioViewModelTest {
private lateinit var audioMap: ArrayMap<Int, AudioItem>
@Before
fun setUp() {
audioMap = ArrayMap()
val audioItem = AudioItem()
audioMap[1] = audioItem
audioMap[2] = audioItem
audioMap[3] = audioItem
assertNotNull(audioMap[1])// this is failing
}
@Test
fun testAudioMap() {
assertNotNull(audioMap[1])// this is failing
}
}
总是具有零的大小,即使我在其中添加了一些元素。
答案 0 :(得分:0)
您不能在本地测试中使用Android平台类。在本地测试中,您只是模拟了android.util.ArrayMap
类。这就是为什么它的大小始终为0的原因。您必须使用检测测试或使用androidx.collection.ArrayMap