nglauber
07/10/2020, 2:27 PM@RunWith(JUnit4::class)
class ExampleInstrumentedTest {
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun testProductQuantity() {
var quantity = 0
composeTestRule.setContent {
MaterialTheme {
MyComponent(onUpdate = { quantity += it })
}
}
findByTag("Product_Inc")
.doClick()
.doClick()
runOnIdleCompose {
assertEquals(quantity, 2)
}
}
}
When I press the run button, I can see the loading on the Run panel on Android Studio, but after a few seconds I get this message:
java.lang.AssertionError: Activity never becomes requested state "[CREATED, STARTED, RESUMED, DESTROYED]" (last lifecycle transition = "PRE_ON_CREATE")
henrikhorbovyi
07/10/2020, 3:26 PMMyComponent
implementation?henrikhorbovyi
07/10/2020, 3:27 PM@Composable
fun MyComponent(onUpdate: (Int) -> Unit) {
val (value, onChanged) = state { 0 }
Button(
modifier = Modifier.testTag("component_tag"),
text = { Text("Clicke me") },
onClick = {
onChanged(value + 1)
onUpdate(value)
})
}
nglauber
07/10/2020, 3:39 PMhenrikhorbovyi
07/10/2020, 3:40 PMnglauber
07/10/2020, 3:40 PMdev14
henrikhorbovyi
07/10/2020, 3:40 PMhenrikhorbovyi
07/10/2020, 3:49 PMrunOnIdleCompose {
assertEquals(2, quantity)
}
henrikhorbovyi
07/10/2020, 3:50 PMAdam Powell
07/10/2020, 4:03 PMnglauber
07/10/2020, 6:07 PMAdam Powell
07/10/2020, 6:07 PMnglauber
07/11/2020, 12:10 AM<activity android:name="androidx.activity.ComponentActivity" />