viewModel测试:
https://developer.android.com/codelabs/basic-android-kotlin-compose-test-viewmodel#3
androidTestImplementation "org.jetbrains.kotlin:kotlin-test:1.9.0"
androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3'
import androidx.lifecycle.MutableLiveData
import androidx.test.espresso.action.ViewActions.*
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
@LargeTest
class LiveDataTest{
@Test
fun testLiveDataValueChange() = runTest {
val liveData = MutableLiveData("1");
var observedValue: String? = null
launch(Main){
liveData.observeForever { value ->
observedValue = value
}
}
// 在协程中进行异步操作
val job = launch(Dispatchers.Default) {
delay(1000)
// 更改 LiveData 的值
liveData.postValue("2")
}
job.join()
assertEquals(observedValue, "2")
assertEquals(liveData.value, "2")
}
}
版权声明:本文为oHeHui1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。