2013-04-25 66 views
0

我们可以在一个cs页面中定义一个函数,并在另一个cs页面中引用该函数,以便使用第1个cs页面函数执行第2个cs页面中设计的功能?引用第2个cs页面中的第1个cs页面的功能

这样like..in 1 CS页

Iwebdriver driver; 
driver=new firefoxdriver(); 

在第2页CS,我有很多职能包括基于上述功能,所以我怎么可以参考本作中第2页CS这样的功能代码简单性会存在吗?

回答

1

这是一个非常严重的措辞问题,但我只能假设,基本上是你想怎么实现的是要调用从一个测试功能在另一个测试从另一个类的能力,或者说一个类。

这是基本的C#。

你的代码应该被拆分出来,这意味着这很容易实现。所以这意味着你的测试完全与你的实际逻辑分离。

使用页面对象是一条路可走:

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

这将意味着你有一个页面,如:

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. 
} 

你会调用它就像一个试验:

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

由于它现在是分开的,您可以拨打电话LoginPage.Login()任何地方

这里的关键是而不是将所有的逻辑都捆绑到测试中。如在,不要复制/粘贴登录代码登录到您的网站每个测试。存储它,就像上面一样。测试应该是你采取的步骤,页面对象应该定义如何采取这些步骤。这样你就可以实现你的目标。

+0

嗨,Arran,thanx 4 ur回复。我的新代码,正如你上面所说的,下面给出。请看看它是如何进行重构的。 public class Class1 { public Class1 drive() { IWebDriver driver; driver = new FirefoxDriver(); } 在这里,我面临的问题是“不是所有的代码路径都返回一个值”。 而在第二页我有这样的功能.. driver.FindElement(By.Name(“username”))。SendKeys(“”); 虽然每次在本地定义我正在获得新的浏览器窗口。因此,对于10个功能我得到10个窗口。我必须减少到1.请帮助... – Vysakh 2013-04-26 05:48:40

相关问题