C'est une continuation de ce qui suit.
Comme mentionné ci-dessus, il est réimprimé.
├─ src
├─ test
├─ java
| └─ jp.co.hoge.Project.E2ETest
| ├─ pageobject
| └─ steps
| └─ utils
└─ resources
└─ jp.co.hoge.Project.E2ETest
└─ feature files
PageObject Un PageObject est un objet qui représente la relation entre une page et un utilisateur (quel que soit le test). Les conditions suivantes sont remplies.
PageObject signifie essentiellement quelque chose qui répond aux exigences ci-dessus, mais pour des raisons de développement, nous ne l'avons pas rendu complètement conforme. Par exemple, cette fois, nous avons préparé un PageObject appelé BasePage comme classe de base de PageObject. Fondamentalement, cette classe est héritée lors de la création d'un nouvel objet PageObject. Cette BasePage implémente une méthode publique pour vérifier l'existence d'éléments, et bien que la méthode dans le principe ci-dessus viole le retour de PageObjects, j'ai décidé d'implémenter la vérification d'existence pour chaque PageObject pour plus de commodité.
///Exemple de PageObject
public class SearchPage extends BasePage {
public SearchPage(IOSDriver driver) {
super(driver);
}
@iOSXCUITFindBy(xpath = "//*[@name=\"Chercher\"]")
private IOSElement navigationBar;
@iOSXCUITFindBy(xpath = "//*[@name=\"Trouver un artiste\"]")
private IOSElement textSearchField;
@iOSXCUITFindBy(accessibility = "Classement")
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 Le scénario est écrit en texte brut. Voici une règle de syntaxe appelée Gherkin. Sample
Feature:Afficher la page à rechercher
Scenario:Appuyez sur l'onglet de recherche
Lancez l'application donnée et passez à l'écran de recherche
Puis sur l'écran de recherche, «Rechercher» s'affiche dans l'en-tête
Steps Keyword Vous pouvez utiliser les mots clés ** Étant donné **, ** Quand **, ** Alors **, ** Et ** ou ** Mais ** pour chaque étape. Cependant, ceux-ci ne sont pas pris en compte lors de la recherche de définitions d'étapes.
Steps Argument Vous pouvez transmettre des arguments à la définition d'étape. Cependant, il existe des restrictions sur les types qui peuvent être utilisés. https://cucumber.io/docs/cucumber/cucumber-expressions/#parameter-types
// example feature
Scenario:Afficher le panneau de commande lors de la lecture de musique
Appuyez sur l'onglet Recherche donnée
Et de la recherche de texte"Kenshi YONEZU"Entrer
...
// example steps definision
@Given("À partir de la recherche de texte{string}Entrer")
public void Afficher Genshi Yonezu à partir de la recherche de texte(String keyword) {
searchResultPage = searchPage.searchText(keyword);
}
Skip Test S'il y a une fonctionnalité que vous ne souhaitez pas exécuter le test sur CI, comme une étape au milieu du développement, vous pouvez ignorer l'exécution du test en ajoutant l'annotation ignorer.
@ignore
Feature:Affichage de la publicité
Recommended Posts