Проверьте правильность обновления значения, содержащегося в MutableState.

У меня есть viewModel, которая выглядит так

      class PhotoViewModel(
    private val getPhotoUseCase: GetPhotoUseCase
) : ViewModel() {

    val photo: MutableState<PhotoItem?> =
        mutableStateOf(null)

    fun getPhotoDetail(photoId: Int) {
        viewModelScope.launch {
            val photo = getPhotoUseCase(photoId)
            photoDetail.value = photo
        }
    }
}

и я пытаюсь обновить состояние, выполнив следующие действия.

      @Test
    fun `state is updated correctly`() = runTest {
        coEvery {
            getPhotoDetail(id = 0)
        } returns PhotoItem(
            ...
        )

        systemUnderTest.getPhotoDetail(id = 0)
        val actualState = systemUnderTest.photoDetail.value

        assertEquals(mockedPhotoItemUiModel, actualState)
    }

Но, к сожалению, тест не проходит, потому что сравниваются объекты в памяти, поэтому я получаю

      Expected :com.package.PhotoItem@3791f50e
Actual   :com.package.PhotoItem@574b7f4a

Должен ли я использовать другой метод для утверждения равенства? Использую ли я совершенно неправильный подход, тестируя mutableState таким образом?

Я не смог найти никаких официальных ресурсов о тестировании MutableState, кроме этого поста SO.

0 ответов

Другие вопросы по тегам