我正在尝试测试我的 UI 层和我的域层之间的映射器功能。
但是我得到了一个异常java.lang.IllegalStateException: Not in a frame
如果我将 UIModel 更改为 aval
而不是 a ,此异常就会消失,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)