2014-10-16 83 views
0

在我的應用程序中,記錄頁面有一個「返回」按鈕。該頁面可以從主頁或記錄列表頁面訪問;後退按鈕應該返回到上一頁。後退方法應該返回什麼?什麼頁面對象從頁面對象返回動作返回

一種方法是將一個參數傳遞給RecordPageObject,以便它跟蹤當按下返回時它應該返回的內容。 類RecordPageObject {

T back(Class<T> returnPageObjecType) { 
    click("Back"); // some function to click on Back button. 
    if (comingFromHome) { 
     return (T) PageObjectFactory.createHomePageObject(); 
    } else { 
     return (T) PageObjectFactory.createListPageObject(); 
    } 
    } 

} 

在這種情況下,調用代碼將是:

// calling code 
HomePageObject currentPage = RecordPageObject.back(HomePageObject.class); 

選項2是僅在back()功能做click("Back")和如下寫調用代碼:

RecordPageObject rec = .... // something to land on RecordPage 
rec.back(); 
HomePageObject currentPage = PageObjectFactory.createHomePageObject(); 

我想,還有一個選擇是將PageObject的類型作爲泛型參數傳遞給RecordPageObject<T>,並且sto將其視爲會員。這將使我們免於在back()函數中傳遞該值。

+1

簡單的答案是:使調用函數跟蹤它。更復雜的答案在於繼承和「接口」。 – SiKing 2014-10-16 21:06:02

回答

4

我建議你使用你已經使用的第一種方法。

HomePageObject currentPage = RecordPageObject.back(HomePageObject.class); 

這清楚地說明了您的應用程序的流動而這正是你應該做的。你遵循的第二種方法有一個缺點。您創建的頁面對象,但back應該做這個任務! (因爲這應該在你的UI中起作用)