假设我有以下代码:
namespace SeleniumTests
{
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(InternetExplorerDriver))]
public class TestWithMultipleBrowsers<TWebDriver> where TWebDriver : IWebDriver, new()
{
private IWebDriver driver;
[SetUp]
public void CreateDriver () {
this.driver = new TWebDriver();
}
[Test]
public void GoogleTest() {
driver.Navigate().GoToUrl("http://www.google.com/");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Bread" + Keys.Enter);
Thread.Sleep(2000);
Assert.AreEqual("bread - Google Search", driver.Title);
driver.Quit();
}
}
}
I want block
[SetUp]
public void CreateDriver () {
this.driver = new TWebDriver();
}
移到基类。但我不知道在这种情况下应该如何继承自基类。我该如何处理 <TWebDriver> where TWebDriver: IWebDriver, new ()
?
[SetUp]
视为一个单元测试的构造函数。我的做法非常类似,但不是在[SetUp]
中创建新实例,而是调用一个静态方法,该方法接受一个泛型IWebDriver
并进行大量设置,例如连接到Selenium GRID服务器,设置窗口大小等。 - Jamie Rees