在我的应用程序中,记录页面有一个“后退”按钮。可以从主页或记录列表页面访问该页面;后退按钮应返回上一页。后退方法应该返回什么?
一种方法是将参数传递给RecordPageObject
,以便跟踪按下后退时应返回的内容。
class 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仅在click("Back")
函数中执行back()
并编写调用代码,如下所示:
RecordPageObject rec = .... // something to land on RecordPage
rec.back();
HomePageObject currentPage = PageObjectFactory.createHomePageObject();
我想,另一种选择是将PageObject的类型作为通用参数传递给RecordPageObject<T>
并将其存储为成员。这样可以避免我们在back()
函数中传递该值。
答案 0 :(得分:4)
我建议您使用您使用过的第一种方法。
HomePageObject currentPage = RecordPageObject.back(HomePageObject.class);
这清楚地解释了您的应用程序的 flow ,这正是您应该做的。您遵循的第二种方法有一个缺点。您创建页面对象,但back
应该执行该任务! (因为它应该在你的用户界面中起作用)