IntelliTect / TestTools

A collection of tools for aiding in test automation
MIT License
10 stars 7 forks source link

Add unit tests to Selenate #101

Closed PandaMagnus closed 3 years ago

PandaMagnus commented 3 years ago

I originally wasn't sure Selenium was easily-mockable (ha!) but in exploring some options for a different project I found out it is. Example usage:

[Fact]
public void ExampleSeleniumMock()
{
   var mockElement = new Mock<IWebElement>();
   mockElement.SetupProperty(e => e.Displayed, true);

   var mockDriver = new Mock<IWebDriver>();
   mockDriver.SetupGet(t => t.Title).Returns("Test Title");
   mockDriver.Setup(f => f.FindElement(By.CssSelector("someCssSelector")))
      .Returns(mockElement.Object);

   IWebDriver driverTest = mockDriver.Object;
   Assert.NotNull(driverTest);
   Assert.NotNull(driverTest.FindElement(By.CssSelector("someCssSelector")));
   Assert.Null(driverTest.FindElement(By.CssSelector("someOtherCssSelector")));
}

Target v2 for this as there are relatively significant changes for that.

PandaMagnus commented 3 years ago

I think I have all of the tests I need for proper coverage. Will be part of the v2 release. Closing.