Let's say I Have code:
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(); } move to base class. But I do not know in this case how inherited from the base class. How do I handle <TWebDriver> where TWebDriver: IWebDriver, new ()?
[SetUp]as a Unit Test Constructor almost. What I do is very similar but instead of creating the new Instance in the[SetUp]I call off to a static method that takes in a GenericIWebDriverand does lots of setup like connects to the Selenium GRID server, sets window size etc.