不能将httpcontextbase传递给HttpContext类型变量的方法

时间:2012-05-01 17:39:04

标签: c# asp.net unit-testing moq

我有方法期待HttpContext类型变量。

public string GetQueryStringValues(HttpContext context)

我正在用文章hanselman article编写单元测试,使用Moq创建/填充HttpContext并按如下方式传入方法:

        string url = "http://localhost:51209/WebForm1.aspx?height=6&width=7&length=8&mode=walk";
        HttpContextBase contextbase = MoqHelper.FakeHttpContext(url);
        string result = new Helper(whitelist).GetQueryStringValues(context); 

我收到以下错误消息:

无法从'System.Web.HttpContextBase'转换为'System.Web.HttpContext'

如何在不更改方法GetQueryStringValues的签名

的情况下解决此问题

请帮忙。

感谢

1 个答案:

答案 0 :(得分:1)

不幸的是,如果不改变签名,就无法做到这一点。但是,您的签名在抽象方面会更好,而不是具体类型。