2013-04-25 2 views
0

하나의 cs 페이지에서 함수를 정의하고 다른 cs 페이지에서이 함수를 참조하여 두 번째 cs 페이지에서 설계된 함수가 첫 번째 cs 페이지 함수와 함께 실행되도록 할 수 있습니까?두 번째 cs 페이지의 첫 번째 cs 페이지 참조 기능

등 2 CS 페이지에서 1 CS 페이지

Iwebdriver driver; 
driver=new firefoxdriver(); 

like..in, 나는 많은 기능은 위의 기능에 따라 포함, 그래서 어떻게 내가 2 CS 페이지 그래서에서 함수로 이것을 참조 할 수 있습니다 그 코드 단순성은 존재할 것인가?

답변

1

이 매우 심하게 내용의 질문입니다하지만 난 단지 당신이 다른 클래스에서 다른 테스트에서 하나 개의 테스트에서 함수를 호출 할 수있는 능력, 또는 오히려 하나 개 클래스을 가지고 달성하는 것입니다 시도하고있는 무슨 본질적를 가정 할 수있다 .

이것은 기본 C#입니다.

코드를 손쉽게 분리 할 수 ​​있어야합니다. 따라서 테스트은 실제 로직과는 완전히 별개입니다.

:

public class LoginPage 
{ 
    public HomePage Login(string username, string password) 
    { 
     // do the login stuff 
     // return the home page 
    } 
} 

public class HomePage 
{ 
    // some logic related to what the user can see on the home page. 
} 

당신은 같은 테스트를 호출 것 :

http://code.google.com/p/selenium/wiki/PageObjects

이 당신과 같은 페이지가 의미 : 페이지 개체를 사용

갈 방법 중 하나입니다

var loginPage = new LoginPage(); 
HomePage homePage = loginPage.Login(username, password); 

이제 분리되었으므로 LoginPage.Login()에서 전화 할 수 있습니다. 어디서나.

여기서 키는 이 아니며이 아닌 모든 논리를 테스트 자체에 포함시킵니다. 마찬가지로 로그인 코드를 복사하여 웹 사이트에 로그인하여 시험에 붙여 넣지 마십시오. 위와 같이 보관하십시오. 테스트는 수행해야하는 단계 여야하며 페이지 객체는 을 정의해야합니다. 단계가 수행됩니다. 이렇게하면 목표를 달성 할 수 있습니다.

+0

안녕 Arran, 고맙습니다 4 ur 답장. 당신이 위에서 말했듯이 내 새로운 코드는 아래에 주어집니다. 어떻게 재구성 될 수 있는지보십시오. public class Class1 { public Class1 drive() { IWebDriver 드라이버; 드라이버 = 새 FirefoxDriver(); } 여기에 "모든 코드 경로가 값을 반환하지는 않습니다"라는 문제가 있습니다. 두 번째 페이지에는 다음과 같은 기능이 있습니다. driver.FindElement (By.Name ("username")). SendKeys (""); 각 시간을 로컬로 정의하면서 새로운 브라우저 windows를 얻고 있습니다. 10 가지 funtions에 대해 10 개의 windows가 있습니다. 도움을 줄여야합니다. – Vysakh

관련 문제