У меня есть готовый объект Fake для HttpRequest (обертка и интерфейс) ... поскольку мне не нужно вызывать конструктор, как я могу передать поддельный HttpRequest, не нарушая интерфейс этого метода?
public static int ParseQueryInt(string key, int defaultValue)
{
NameValueCollection nvc;
if (HttpContext.Current.Request.QueryString["name"] != null)
{
//Parse strings.
}
}
РЕДАКТИРОВАТЬ: решение Аксельсона является наиболее креативным, и это доказательство концепции сработало, к моему большому удивлению, хотя я также использовал решение Skeet, поскольку оно выглядит более вероятным в любых ситуациях.
public class Class1
{
[Test]
public void Test()
{
HttpContext.Current = new HttpContext(
new HttpRequest("test.aspx", "http://test.com/test.aspx", "querystring=value"),
new HttpResponse(new StringWriter())
);
Assert.AreEqual(HttpContext.Current.Request.QueryString["querystring"], "value");
}
}