Wie testet ich diesen ExitProcess?Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Wie testet ich diesen ExitProcess?

Post by Anonymous »

Kontext < /h3>
Ich arbeite derzeit an einer Anwendung, die nur in der französischen Sprache nützlich sein kann, da es ein Wörterbuch verwendet und nur die französische Version verfügbar ist. Ich habe mich entschlossen, einen Dialog beim Start anzuzeigen, wenn die Systemsprache nicht französisch ist, und den Benutzer zu fragen, ob er fortfahren oder abbrechen möchte. Soweit so gut, wenn die Schaltfläche auf die ABORT geklickt wird, schließe ich alles mit Aktivität.finish () und exitProcess () . Alles funktioniert gut und wenn ich das auf dem Emulator mache, kann ich sehen, dass die Anwendung endet. /> Frage
Wie kann ich gleichzeitig testen, dass die Anwendungs ​​-CODE nach einem Taste geklickt wird? 2025.1.2 Patch 1. Es ist eine Down-Version in meinem eigenen Code, um das Problem zu demonstrieren und zu reproduzieren.class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
KillAppTheme {
var inDialog by rememberSaveable { mutableStateOf(true) }
if (inDialog) {
KillDialog(
abort = {
finish()
exitProcess(0)
},
cont = {
inDialog = false
}
)
}
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
}
}
}
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}

@Composable
fun KillDialog(
abort: () -> Unit,
cont: () -> Unit,
) {
Dialog(onDismissRequest = {}) {
Column {
Text("Continue of abort?")
Row {
Button(onClick = cont) {
Text("Continue")
}
Button(onClick = abort) {
Text("Abort")
}
}
}
}
}
< /code>
Killapptest.kt (AndroidTest) < /h5>
@RunWith(AndroidJUnit4::class)
class KillAppTest {
/* Ensure that the dialog goes away after a click on the Continue button */
@Test
fun cont() {
uiAutomator {
startApp()
onElement{textAsString() == "Continue"}.click()
Assert.assertNull(onElementOrNull { textAsString() == "Continue" })
}
}
/* (should...) Ensure that the application terminates after clicking on Abort */
@Test
fun abort() {
uiAutomator {
startApp()
onElement{textAsString() == "Abort"}.click()
// test fails after this point
}
}
}
< /code>
Identifizierte Problemumgehungen < /h3>
  • Verwenden Sie nur einen Unit -Test auf dem Dialogfeld, über eine Lambda, die nicht die Anwendung beendet, und kontrolliert nicht, dass das Lambda nur als ada. /li>
    verwendet wird. /> Haftungsausschlüsse: < /h4>

    Der Code sollte mehr Kommentare verdienen, aber es wird nur verwendet, um das Problem zu demonstrieren. Seite ...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post