我最近通過rubyweekly電子郵件發現了SitePrism。 它看起來很神奇。我可以看到它將成爲未來。使用SitePrism與Rspec和水豚功能規格
我見過的例子大多是黃瓜步驟。 我想弄清楚如何使用rspec使用SitePrism。
假設@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("[email protected]")
@login_page.password_field.set("password")
@login_page.submit_button.click
etc...
這似乎是可能的工作。所以,當你知道你應該在一個特定的頁面上時,你會創建一個該頁面的實例,並以某種方式在水豚「頁面」上下文中,如page.find(「a [href ='/ sessions/new']] 「)被轉移到最後一個SitePrism對象?
我只是覺得我在這裏失去了一些東西。 我會玩弄,看看我能弄清楚 - 只是想到我可能會錯過一些東西。 我正在查看源代碼,但是如果有人已經想通了......請隨時分享:)
爲什麼你不想把登錄方法放在頁面對象中? – 2013-04-06 14:04:54
您可能錯過了這個問題的要點... – 2013-04-06 14:37:09
你能顯示你的功能/支持/ env.rb文件嗎? – bmalets 2013-10-04 09:21:10