Объект создания шаблона страницы - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь понять, как сделать PO и спрашиваю вас, что я делаю это правильно. Я не уверен, когда мне следует создать новый объект класса страницы. Вот пример потока, который я придумал. Я не могу найти похожий пример. Я на MainPage (создать новый объект mp) перейти к UsersPage сделать некоторые действия, и я хочу перейти (используя метод из MainPage) в UsersGroups. Мой код:

export class MainPage
{
  navigate(): MainPage
  {
    cy.get('#mainpage').click()
    return this
  }

  goTouUser(): UsersPage
  {
    cy.get("#users").click()
    return new UsersPage()
  }

  goToGroups(): UsersGroupsPage
  {
    cy.get("#usersGroups").click()
    return new UsersGroupspage()
  }
}

UserPage

export class UsersPage
{
  addUser(user: String): UsersPage
  {
    cy.get("#addUser").type(user)
    return this
  }
  goToProfile(): ProfilePage
  {
    cy.get('#profile').click()
    return new ProfilePage()
  }
}

Мой пример теста

describe("Add new users", () =>
{
  const mp = new MainPage()
  it('Navigate to main page', () =>
  {
    up = mp.navigate()
           .goTouUser()
    up.addUser("newUser_1")
    >>>> want to navigate to UserGroups <<<<
  })
})

И вот мои вопросы: 1. Об этом месте >>>> want to navigate to UserGroups <<<< Могу ли я перейдите к UserGroups, используя созданный до объекта mp -> mp.goToGroups (), или я должен создать новый объект MainPage, а затем перейти к группам пользователей? 2. Является ли эта часть кода хорошей практикой использования ПО? Должен ли я «вернуть это» и вернуть «объекты новых страниц»?

...