В моем приложении на странице записи есть кнопка «Назад». Доступ к странице можно получить либо с домашней страницы, либо со страницы списка записей; а кнопка «Назад» должна вернуться на предыдущую страницу. Что должен возвращать метод back?
Один из способов — передать параметр 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 — выполнять только click("Back")
в функции back()
и писать код вызова следующим образом:
RecordPageObject rec = .... // something to land on RecordPage
rec.back();
HomePageObject currentPage = PageObjectFactory.createHomePageObject();
Я предполагаю, что еще одним вариантом будет передать тип PageObject в качестве общего параметра в RecordPageObject<T>
и сохранить его как член. Это убережет нас от передачи этого значения в функцию back()
.
interface
. - person SiKing   schedule 17.10.2014