我正在嘲笑HttpRequestBase,所以我可以在测试代码中创建一个
HtmlHelper并围绕
HtmlHelper扩展方法编写测试.我这样做是设置代码的一部分:
httpRequestBase.Stub(h => h.ApplicationPath).Return("~/"); httpRequestBase.Stub(h => h.AppRelativeCurrentExecutionFilePath).Return(appPath); httpRequestBase.Stub(h => h.PathInfo).Return("");
在两个开发机器上(一个运行XP,一个Vista 64位)工作正常.但是,在Windows Server 2003构建计算机上,当我在HtmlHelper上调用RouteLink()时测试失败,如下所示:
System.ArgumentException:此处不允许应用程序相对虚拟路径’〜/’.
在System.Web.VirtualPath.Create(String virtualPath,VirtualPathOptions选项)
在这两种情况下,我都使用NUnit 2.4.8和NUnit GUI作为测试运行器.据我所知,其他所有内容都是相同的:相同版本的RhinoMocks(3.5),相同版本的ASP.NET MVC(RTM).我尝试从开发机器上复制二进制文件,而不是使用构建机器上的二进制文件,这没什么区别.
当我将设置代码中的第一行更改为:
httpRequestBase.Stub(h => h.ApplicationPath).Return("/");
测试通过所有机器.
知道为什么吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。