1

我正在尝试模拟 selenium 网络驱动程序。我使用以下代码:

    public  IWebDriver GetMockDriver()
    {
        this.Mock = new Mock<IWebDriver>();
        return (IWebDriver)this.Mock.Object;            
    }

如果我只是访问驱动程序属性,一切都很好,但是当我尝试访问作为驱动程序一部分的对象时,例如:

             driver.Manage().Window.Maximize();

我得到一个 System.NullReferenceException。

我真的不想/不需要跟踪对 Mock 对象的调用,更重要的是我想要实现 iWebDriver 的东西,这样我就可以使用 TDD 编写我的 selenium 测试,而不必实际创建一个真正的 web 驱动程序的实例每一次。

4

1 回答 1

2

如果要调用特定成员,则必须在模拟上定义实现

this.Mock.Setup(x => x.SomeMethod()).Returns(someObject);

在上面尝试一些变化。否则,您的模拟方法将返回成员的默认数据类型(可能为 null)

于 2013-10-01T04:42:23.047 回答