kotlin + LiveData 测试

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")
    }
    }

你可能感兴趣的:(kotlin,kotlin,开发语言,android)