Я пытаюсь протестировать функцию отображения между моим слоем пользовательского интерфейса и слоем домена.
Но я получаю исключение java.lang.IllegalStateException: Not in a frame
Это исключение исчезает, если я изменяю свою UIModel на val
вместо var
, но тогда это бесполезно с Обновления модели, которые предлагает Jetpack Compose.
Есть ли способ проверить этот тип картографа?
import androidx.compose.Model
import org.junit.Assert.assertEquals
import org.junit.Test
class DataModelMapperTest {
@Test
fun `data model to ui model`() {
val model = DataModel(5)
val uiModel = UIModel(5)
assertEquals(uiModel, model.toUIModel())
}
@Test
fun `ui model to data model`() {
val model = DataModel(5)
val uiModel = UIModel(5)
assertEquals(model, uiModel.toDataModel())
}
}
@Model
data class UIModel(var value: Int)
data class DataModel(val value: Int)
fun DataModel.toUIModel(): UIModel = UIModel(this.value)
fun UIModel.toDataModel(): DataModel = DataModel(this.value)