2013-12-17 67 views
0

我猜這是由於geb實現導致的一個常規問題,但我想知道是否有任何方法讓智能感知與geb頁面對象一起工作。我也是Java/Groovy(過去主要是C#開發)的新手,所以可能會有一些我不太理解的東西。我使用Intellij,但如果有任何IDE可以給我我想要的東西,我會很高興。是否有可能讓智能感知與Geb頁面對象一起工作?

據我所知,Geb的實現是他們有一個帶有Page屬性的瀏覽器類,任何沒有特定頁面實例上下文的方法或屬性都會在運行時觸發一個MissingMethod或MissingProperty異常, Geb處理並重新路由到當前通過瀏覽器類中的Page屬性設置的Page類中的相應方法或屬性。

這對開發意味着什麼,當我們創建測試用例時,IDE並不知道哪個頁面實例是當前的瀏覽頁面屬性,因此沒有智能感知。

我們嘗試創建頁面的實例並明確地調用它們,並且還使頁面類中的幫助函數成爲靜態的,這兩者都導致了其他問題。

對於我們的商店來說,這幾乎成了一件難事,但在我們放棄之前,我想看看Geb或Groovy的專家是否可以提供一些關於如何讓智能感知工作的建議,或者可以給我們一個指示甚至有可能。

編輯:我在geb文檔中發現了強大的打字和IDE支持,看起來很有前途:http://www.gebish.org/manual/current/ide-and-typing.html#ide_support然而,提供的例子失敗。我直接從下面創業板文檔粘貼的例子,有評論表示在/失敗的原因:

HomePage homePage = browser.to HomePage //browser.to returns null, so this fails 
homePage.loginButton.click() 

LoginPage loginPage = browser.at LoginPage //browser.at returns boolean so this fails 
SecurePage securePage = loginPage.login("user1", "password1") 

//The only thing that I got to work, which seems messy is: 
browser.to HomePage 
HomePage homePage = browser.page 
homePage.loginButton.click() 

回答