Ich schreibe UI-Automatisierungstests für eine Android-App mit Espresso. Der Test sucht nach einer Barcode-Nummer und sucht den zugehörigen Artikel. Diese Funktion ist jedoch nur für US-Benutzer verfügbar. Der Benutzermarkt wird durch die Gerätesprache (en_US, en_UK) identifiziert.Wie sollte ich beim Schreiben von UI-Automatisierung mit Espresso mit mehreren Märkten umgehen?
Wie kann ich diesen Test schreiben, damit er nicht jedes Mal fehlschlägt, wenn ich die automatisierten Tests für Großbritannien durchführe?
Ich habe dies mit XCTest für die iOS-App erreicht, indem ich eine Methode erstellt habe, die die aktuelle Sprache der Geräte überprüft.
if isUSLocale() {
<US specific test>
}
die gleiche Testsuite ausführen, ohne Unterschiede durch unsere Anwendungen regional verursacht Ausfälle mit Dies ermöglicht es mir:
class MarketChecker: XCTestCase {
func isUSLocale() -> Bool {
return Locale.current.identifier == "en_US"
}
func isGBLocale() -> Bool {
return Locale.current.identifier == "en_GB"
}
}
Das Verfahren wird dann zu Beginn des Tests genannt.
Leider (für mich) Espresso mag keine if
Aussagen, so dass ich nicht sicher bin, wie dies für die Android-App zu implementieren. Alle Einsichten würden sehr geschätzt werden!
Welche Programmiersprache ist das? – dazza5000
@ dazza5000 Der Beispielcode ist in Swift. Ich versuche das gleiche zu tun, was ich im Beispielcode getan habe, aber in Java mit dem Espresso-Framework. Espresso erlaubt "versuchen/fangen", aber ich glaube nicht, dass das eine gute Lösung ist. –