많은 질문을 하셨는데, 몇 가지 답변을 드리겠습니다.
Selenium을 사용하는 웹 응용 프로그램에서 페이지 개체를 사용했으며 데스크톱 WinForms 응용 프로그램에서도 페이지 개체를 사용했습니다 (페이지 개체가 아니라 페이지 개체와 마찬가지로 같은 방식으로 사용 했음 - 개체보기?). 내 평결은 위대한 작품이며, 나는 확실히 그것을 권하고 싶습니다.
여기 테스트가 어떻게 보이는지에 대한 간단한 예입니다, 그런데 우리가 쓴 : 여기
[Test]
public void AccountPageNameIsLoggedInUsersName()
{
FirstPage() // Returns FirstPage
.LoginAs("tobbe", "s3cr3t") // Returns LoggedInPage
.ClickOnMyAccount() // Returns MyAccountPage
.AssertThat(p => p.Name, Is.EqualTo("tobbe")); // p is of type MyAccountPage
}
는 셀레늄의 마법은 FirstPage() 메소드 및 페이지 내부에 배치됩니다. 이렇게하면 테스트에서 불필요한 구현 세부 사항을 모두 숨길 수 있습니다. 방법을 구현하는 방법을 알 수 있습니다.
셀레늄을 페이지 내부에 숨겨서 보너스를 얻으면 테스트를 변경하지 않고 예를 들어로 변환 할 수 있습니다. ModelObject-View-Presenter 테스트에서 PageObject가 뷰를 나타냅니다 (WinForms 앱에서와 비슷합니다). 마스터 페이지에 관한
은, 우리가 한 일은 우리가 그 인터페이스의 인터페이스와 페이지와 생성 된 확장 메서드를 장식한다는 것입니다 : 복잡한 페이지 내 블로그에 개체에 대해
public class LoggedInPage : Page<LoggedInPage>, IMainMenuHolder { ... }
public static class MainMenuHolderExtensions
{
public static MyAccountPage ClickOnMyAccount(this IMainMenuHoder me) { ... }
}