J'écris un cadre d'automatisation pour une application simple et j'ai une question pour quelques pages, devrais-je utiliser l'héritage ou dois-je utiliser la composition. Et j'adorerais en discuter avec vous.Objet de page Modèle Is-A ou Has-A?
1.J'ai une page abstraite dont chaque page doit hériter. Maintenant cette page a tellement de méthode d'attente que je veux mettre en dehors de la page. Dois-je utiliser l'héritage pour cela. Je veux dire Dois-je créer une classe d'attente et en hériter dans la classe Page ou dois-je utiliser la composition. public class waitTool {// Toutes les méthodes d'attente }
public abstract class Page waitTool{
//In case of this waitTool is abstract
}
I
public abstract class Page {
protected WaitTool waitTool;
}
public class LoginPage extends Page {
}
2.Application a une barre de menu qui est commune à toutes les pages. Dois-je créer une page distincte pour la barre de menu, puis l'hériter dans Page? Ici, s'il vous plaît pensez que je pourrais avoir besoin d'hériter de la classe waitTool d'en haut aussi. ou devrais-je créer ce menuBar en tant que classe de navigation. Ce que je veux dire, c'est que cette classe contient une fonction pour générer PageObject de chaque page.
public class TopMenu extends Page{
By homeLink = By.cssSelector("a[ui-sref='home']");
public TopMenu(WebDriver driver) {
super(driver);
}
public void gotoHomePage(){
}
}
Pourquoi avez-vous tant de méthodes d'attente? Quels sont quelques exemples des méthodes d'attente? Sont-ils liés aux choses sur la page ou aux méthodes d'attente génériques? Tout ce qui concerne une page donnée devrait être dans cette classe de page. Pour la barre de menu, une classe différente a du sens pour cela. – JeffC