2013-03-21 79 views
0

我是Play的新用戶,通過ToDo List示例(初學者基於Java的教程)工作。如何在Play 2.1測試類中使用頁面對象模式?

我現在正在嘗試使用頁面對象模式(https://github.com/FluentLenium/FluentLenium#page-object-pattern)添加測試用例。

不幸的是,我最初嘗試實現這種模式的做法並不順利。如果您想快速下載並使用它,我的整個系統都可以在GitHub上使用。這裏是一個鏈接到我的測試類,其中顯示,無論運行試驗情況下(即不使用Page對象模式),並試圖使用Page對象模式失敗的測試案例:

https://github.com/philipmjohnson/playexample1/blob/master/test/IntegrationTest.java

這裏是的錯誤,當我運行遊戲控制檯內部的測試用例):

[error] Test IntegrationTest.testWithPage failed: java.lang.NullPointerException 
[error]  at play.test.Helpers.running(Helpers.java:426) 
[error]  at IntegrationTest.testWithPage(IntegrationTest.java:34) 
[error]  ... 
[error] Caused by: java.lang.NullPointerException 
[error]  at org.fluentlenium.core.Fluent.goTo(Fluent.java:223) 
[error]  at org.fluentlenium.core.FluentPage.go(FluentPage.java:55) 
[error]  at org.fluentlenium.core.Fluent.goTo(Fluent.java:204) 
[error]  at IntegrationTest$2.invoke(IntegrationTest.java:37) 
[error]  at IntegrationTest$2.invoke(IntegrationTest.java:34) 
[error]  at play.test.Helpers.running(Helpers.java:424) 

如何正確地實現頁面對象設計模式?

回答

2

一些細節有:

你必須構建頁面,並給它的webdriver,頁面需要它來操縱瀏覽器。

public ToDoListPage(WebDriver webDriver) { 
    super(webDriver); 
} 

並在測試:

ToDoListPage todopage = new ToDoListPage(browser.getDriver()); 

而且,並不需要有一個@Test標註在TodoListPage

見到拉請求:Fix

相關問題