我正在尝试模拟selenium web驱动程序。我使用以下代码:
public IWebDriver GetMockDriver()
{
this.Mock = new Mock<IWebDriver>();
return (IWebDriver)this.Mock.Object;
}
如果我只是访问驱动程序属性,一切都很好,但是当我尝试访问属于Driver的对象时,例如:
driver.Manage().Window.Maximize();
我找回了System.NullReferenceException。
我真的不希望/需要跟踪对Mock对象的调用,更多的是我想要实现iWebDriver的东西所以我可以使用TDD编写我的selenium测试而不必实际创建一个实例真正的网络驱动程序每次。
答案 0 :(得分:2)
如果要调用特定成员
,则必须在模拟上定义实现this.Mock.Setup(x => x.SomeMethod()).Returns(someObject);
尝试上面的一些变化。否则,您的模拟方法将返回该成员的defualt数据类型(可能为null)