Benutzer Bücher ein Hotelzimmer. Der Benutzerstatus ändert sich in booked_room. Dieser Raum ist für andere angemeldete Benutzer nicht mehr verfügbar. Nach der Buchung des Zimmers führt der Benutzer andere Aufgaben basierend auf dem gebuchten Zimmer durch.
Das Problem ist:
Wenn wir diesen Test auf mehreren Geräten gleichzeitig mit dem gleichen Benutzerkonto ausgeführt wird, wird der Test nur auf dem ersten Gerät übergeben. Wenn der Test auf dem zweiten Gerät ausgeführt wird, fordert die App den Benutzerstatus an und zeigt die Zimmerliste nicht an, da der Benutzer bereits eine auf dem vorherigen Gerät ausgewählt hat, wodurch der Test fehlgeschlagen ist, da die REPL keinen Raum in der Elementstruktur gefunden hat.
Jeder einzelne Test meiner Suite beginnt mit dem Login-Prozess.
Haben Sie dieses Problem mit der Xamarin Test Cloud gelöst? Sollte ich eine serverseitige Lösung implementieren, um jedes Mal, wenn die Testsuite ausgeführt wird, eine Datenbankinstanz zu erstellen?
Danke :)
Ich verwende eine Serviceklasse (diejenige, die die API-Aufrufe tatsächlich ausführt), die in dem freigegebenen Projektcode definiert ist, der von den Android- und iOS-Projekten instanziiert und aufgerufen wird. Was ich aus Ihrer Antwort verstehe, ist, dass ich jedes Mal, wenn die Test-Suite ausgeführt wird, eine Datenbank-Kopie lokal auf jedem Gerät erstellen soll? – albertoms
Nein Ich würde die Implementierung der Serviceklasse durch einen Schein ersetzen (der Daten einfach so zurückgibt, wie Sie möchten). Sie können also jedes Szenario simulieren, ohne Daten in die Datenbank zu schreiben/Ihren Webservice anzurufen. –
UITest und Calabash (iOS und Android) unterstützen "Backdoor" -Aufrufe für Ihre App. Es ist üblich, diese "Hintertür" -Aufrufe zu verwenden, um Ihre App in einen guten Teststatus zu versetzen. In diesem Fall könnten Sie eine Hintertür implementieren, die das tut, was Sven-Michael Stübe vorschlägt. – jmoody