J'ai récemment découvert SitePrism via le courriel rubyweekly. Il semble incroyable. Je peux voir que ça va être l'avenir.Utilisation de SitePrism avec Rspec et Capybara Caractéristiques techniques
Les exemples que j'ai vus sont principalement pour les étapes de concombre. J'essaie de comprendre comment utiliser SitePrism avec rspec.
En supposant @home_page pour la page d'accueil, et @login_page pour la login_page Je peux comprendre que
@home_page.load # => visit @home.expanded_url
cependant, la partie que je ne suis pas sûr, est si je pense par exemple cliquez sur le " "login", et le navigateur de Capybara va à la page de connexion - comment puis-je accéder à une instance de la page de connexion, sans le charger.
@home_page = HomePage.new
@home_page.load
@home.login_link.click
# Here I know the login page should be loaded, so I can perhaps do
@login_page = LoginPage.new
@login_page.should be_displayed
@login_page.email_field.set("[email protected]")
@login_page.password_field.set("password")
@login_page.submit_button.click
etc...
Cela semble fonctionner. Ainsi, quand vous savez que vous êtes supposé être sur une page spécifique, vous créez une instance de cette page, et en quelque sorte le contexte "page" de capybara, comme dans page.find ("a [href = '/ sessions/new'] ") est transféré au dernier objet SitePrism? J'ai juste l'impression de manquer quelque chose ici. Je vais jouer et voir ce que je peux comprendre - je me suis dit qu'il me manquait peut-être quelque chose. Je regarde à travers la source, mais si quelqu'un a compris cela ... n'hésitez pas à partager :)
Pourquoi ne voulez-vous pas mettre la méthode de connexion dans l'objet page? –
Vous avez peut-être manqué le point de la question ... –
pouvez-vous afficher votre fichier features/support/env.rb? – bmalets