gpt4 book ai didi

android - androidx.collection.ArrayMap和android.util.ArrayMap有什么区别?

转载 作者:行者123 更新时间:2023-12-02 12:52:46 27 4
gpt4 key购买 nike

我已经看过源代码了,我唯一想知道为什么两个版本都存在的唯一原因是不赞成使用,不是吗?

今天,我正在使用android.util.ArrayMap在存储库类中为其中一个viewModel类编写单元测试。我确实用假值初始化了ArrayMap,但在调试时发现arrayMap的大小始终为零。

 arrayMap["key1"] = someValue
arrayMap["key2"] = someValue
arrayMap["key3"] = someValue

但是,当我将其更改为 androidx.collection.ArrayMap时,它可以正常工作。但是问题是我已经在存储库和viewModel类中使用了 android.util.ArrayMap,并且现在我不想将其转换为 androidx.collection.ArrayMap

这是测试类(class)。
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
}

}

有人可以解释为什么 android.util.ArrayMap总是将大小设为零,即使我在其中添加了一些元素也是如此。

最佳答案

您不能在本地测试中使用Android平台类。在本地测试中,您仅具有android.util.ArrayMap类的模拟。这就是为什么它的大小始终为0的原因。您必须使用检测测试或使用androidx.collection.ArrayMap

关于android - androidx.collection.ArrayMap和android.util.ArrayMap有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57447712/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com