2017-01-31 1 views
7

J'ai construit divers frameworks d'automatisation de test en utilisant le Page Object Pattern avec Java (https://code.google.com/p/selenium/wiki/PageObjects).Est-ce que JavaScript est compatible avec un modèle d'objet de page strict?

Deux des grands avantages que j'ai trouvé sont:

1) Vous pouvez voir quelles méthodes sont disponibles lorsque vous avez une instance d'une page (par exemple en tapant la page d'accueil me montrer toutes les actions/méthodes que vous pouvez. 2) Parce que les méthodes de navigation (par exemple goToHomepage()) renvoient une instance de la page suivante (page d'accueil par exemple), vous pouvez naviguer dans vos tests simplement en écrivant le code et en voyant où cela vous mène.

par exemple. Ces avantages fonctionnent parfaitement avec Java puisque le type d'objet (ou de page dans ce cas) est connu par l'EDI.

Cependant, avec JavaScript (langage typé dynamiquement), le type d'objet n'est pas fixé à aucun moment et est souvent ambigu pour l'EDI. Par conséquent, je ne vois pas comment vous pouvez réaliser ces avantages sur une suite d'automatisation construite en utilisant JavaScript (par exemple en utilisant Cucumber).

Quelqu'un peut-il me montrer comment vous utiliseriez JavaScript avec le modèle d'objet de page pour obtenir ces avantages?

+1

Je ne suis pas au courant de ce modèle , mais la question elle-même se sent comme si elle était trop large pour ce site ... Certains IDE JS sont assez bons pour savoir quelles propriétés un objet devrait avoir. En outre, Typescript pourrait être une option si cela ne vous dérange pas l'étape de compilation supplémentaire. – Gerrit0

+0

posez-vous cette question pour toutes les langues :)? – Tom

+0

Nah ... juste javascript et ruby ​​:-) –

Répondre

3

Du commentaire de Gerrit0 ci-dessus et d'enquêter davantage, il semble un excellent moyen d'y parvenir est d'utiliser tapuscrit (qui est une version statiquement typé JavaScript):

https://en.wikipedia.org/wiki/TypeScript

+0

Sachez simplement que Typescript doit compiler jusqu'à javascript et javascript est faiblement typé. Typescript donne des commentaires à la compilation, mais n'a aucune garantie d'exécution. – shadymoses

0

Si vous utilisez des produits JetBrains Comme IntelliJ IDEA il fera un code d'achèvement et la navigation appropriée pour vous. Dans l'objet de la page monde javascript est un modèle connu aussi. AngularJs l'offre aussi dans son propre framework de test e2e (http://www.protractortest.org/#/page-objects). Personnellement j'utilise IIFE pour les objets page et IntelliJ fait le reste. Si cela ne correspond pas à vos besoins, vous pouvez toujours choisir le typecript et le transférer vers javascript.

+0

IntelliJ est pour Java. J'ai utilisé Jetbrains IDEA pour javascript (appelé WebStorm) mais cela n'a pas fonctionné. J'ai peur car les types d'objet de page ne sont pas connus. –