我最近通过 rubyweekly 电子邮件发现了 SitePrism。看起来很神奇。我可以看到它的未来。
我看到的例子主要是黄瓜步骤。我试图弄清楚如何将 SitePrism 与 rspec 一起使用。
假设主页为@home_page,login_page 为@login_page 我可以理解
@home_page.load # => visit @home.expanded_url
但是,我不确定的部分是,如果我认为单击例如“登录”链接,Capybara 中的浏览器会进入登录页面 - 然后我如何访问登录页面的实例,而不加载它.
@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("some@email.com")
@login_page.password_field.set("password")
@login_page.submit_button.click
etc...
这似乎可行。因此,当您知道您应该在特定页面上时,您创建该页面的一个实例,并以某种方式创建水豚“页面”上下文,如 page.find("a[href='/sessions/new'] ") 转移到最后一个 SitePrism 对象?
我只是觉得我在这里错过了一些东西。我会到处玩,看看我能想出什么——只是想我可能会遗漏一些东西。我正在查看源代码,但如果有人知道这一点......请随时分享:)