Es ist eine Fortsetzung des Folgenden.
Wie oben erwähnt, wird es nachgedruckt.
├─ src
├─ test
├─ java
| └─ jp.co.hoge.Project.E2ETest
| ├─ pageobject
| └─ steps
| └─ utils
└─ resources
└─ jp.co.hoge.Project.E2ETest
└─ feature files
PageObject Ein PageObject ist ein Objekt, das die Beziehung zwischen einer Seite und einem Benutzer darstellt (unabhängig vom Test). Die folgenden Bedingungen sind erfüllt.
PageObject bedeutet im Grunde etwas, das die oben genannten Anforderungen erfüllt, aber aus Entwicklungsgründen haben wir es nicht vollständig konform gemacht. Diesmal haben wir beispielsweise ein PageObject namens BasePage als Basisklasse von PageObject vorbereitet. Grundsätzlich wird diese Klasse beim Erstellen eines neuen PageObjects vererbt. Diese BasePage verfügt über eine öffentliche Methode zum Überprüfen der Existenz von Elementen. Obwohl die Methode im obigen Prinzip der Rückgabe von PageObjects widerspricht, habe ich mich aus Bequemlichkeitsgründen dazu entschlossen, die Existenzprüfung auf jedem PageObject zu implementieren.
///PageObject Beispiel
public class SearchPage extends BasePage {
public SearchPage(IOSDriver driver) {
super(driver);
}
@iOSXCUITFindBy(xpath = "//*[@name=\"Suche\"]")
private IOSElement navigationBar;
@iOSXCUITFindBy(xpath = "//*[@name=\"Finde einen Künstler\"]")
private IOSElement textSearchField;
@iOSXCUITFindBy(accessibility = "Rangfolge")
private IOSElement ranking;
...
public SearchResultPage searchText(String keyword) {
textSearchField.setValue(keyword);
driver.hideKeyboard();
return new SearchResultPage(driver);
}
public SearchSuggestPage showSuggest(String keyword) {
textSearchField.setValue(keyword);
return new SearchSuggestPage(driver);
}
public Boolean existsNavigationBar() {
return checkVisibilityOfElement(navigationBar);
}
...
Feature Das Szenario ist im Klartext geschrieben. Hier kommt eine Syntaxregel namens Gherkin. Sample
Feature:Zeigen Sie die zu suchende Seite an
Scenario:Drücken Sie die Suchregisterkarte
Starten Sie die angegebene App und wechseln Sie zum Suchbildschirm
Dann wird auf dem Suchbildschirm "Suchen" in der Kopfzeile angezeigt.
Steps Keyword Sie können die Schlüsselwörter ** Gegeben **, ** Wann **, ** Dann **, ** Und ** oder ** Aber ** für jeden Schritt verwenden. Diese werden jedoch bei der Suche nach Schrittdefinitionen nicht berücksichtigt.
Steps Argument Sie können Argumente an die Schrittdefinition übergeben. Es gibt jedoch Einschränkungen hinsichtlich der Typen, die verwendet werden können. https://cucumber.io/docs/cucumber/cucumber-expressions/#parameter-types
// example feature
Scenario:Zeigen Sie das Bedienfeld an, wenn Sie Musik abspielen
Tippen Sie auf die Registerkarte Gegebene Suche
Und von der Textsuche"Kenshi YONEZU"Eingeben
...
// example steps definision
@Given("Aus der Textsuche{string}Eingeben")
public void Anzeige von Genshi Yonezu aus der Textsuche(String keyword) {
searchResultPage = searchPage.searchText(keyword);
}
Skip Test Wenn es eine Funktion gibt, mit der Sie den Test nicht auf CI ausführen möchten, z. B. einen Schritt mitten in der Entwicklung, können Sie die Ausführung des Tests überspringen, indem Sie die Anmerkung zum Ignorieren hinzufügen.
@ignore
Feature:Anzeigenanzeige
Recommended Posts