이 매우 심하게 내용의 질문입니다하지만 난 단지 당신이 다른 클래스에서 다른 테스트에서 하나 개의 테스트에서 함수를 호출 할 수있는 능력, 또는 오히려 하나 개 클래스을 가지고 달성하는 것입니다 시도하고있는 무슨 본질적를 가정 할 수있다 .
이것은 기본 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()
에서 전화 할 수 있습니다. 어디서나.
여기서 키는 이 아니며이 아닌 모든 논리를 테스트 자체에 포함시킵니다. 마찬가지로 로그인 코드를 복사하여 웹 사이트에 로그인하여 시험에 붙여 넣지 마십시오. 위와 같이 보관하십시오. 테스트는 수행해야하는 단계 여야하며 페이지 객체는 을 정의해야합니다. 단계가 수행됩니다. 이렇게하면 목표를 달성 할 수 있습니다.
안녕 Arran, 고맙습니다 4 ur 답장. 당신이 위에서 말했듯이 내 새로운 코드는 아래에 주어집니다. 어떻게 재구성 될 수 있는지보십시오. public class Class1 { public Class1 drive() { IWebDriver 드라이버; 드라이버 = 새 FirefoxDriver(); } 여기에 "모든 코드 경로가 값을 반환하지는 않습니다"라는 문제가 있습니다. 두 번째 페이지에는 다음과 같은 기능이 있습니다. driver.FindElement (By.Name ("username")). SendKeys (""); 각 시간을 로컬로 정의하면서 새로운 브라우저 windows를 얻고 있습니다. 10 가지 funtions에 대해 10 개의 windows가 있습니다. 도움을 줄여야합니다. – Vysakh