我正在编写单元测试,其中我需要一个假的 HttpContext。我使用了 Phil Haack 的 HttpSimulator (http://haacked.com/archive/2007/06/19/unit-tests-web-code-without-a-web-server-using-httpssimulator.aspx)。但是 Sitecore api 中的一个函数会在以下代码中引发异常:
request.Browser.Browser.IndexOf("IE", StringComparison.OrdinalIgnoreCase) > -1;
我调试了我的代码并且 request.Browser.Browser 是空的。我试图用最小起订量填充该属性,但出现异常。我还尝试将其添加为标题。
我的代码如下所示:
using (HttpSimulator simulator = new HttpSimulator("/", "localpath"))
{
//NameValueCollection nvc = new NameValueCollection { { "User-Agent", "IE" } };
//simulator.SimulateRequest(new Uri("http://www.foo.bar"), HttpVerb.GET, nvc);
simulator.SimulateRequest();
var browserMock = new Mock<HttpBrowserCapabilities>();
browserMock.SetupAllProperties();
//browserMock.SetupProperty(b => b.Browser, "IE");
HttpContext.Current.Request.Browser = browserMock.Object;
}
有谁知道我如何模拟这个属性?