Fra*_* P. 6 asp.net asp.net-mvc unit-testing
我试图在单元测试中生成视图,但我无法绕过丢失的VirtualPathProvider.大多数viewengines使用VirtualPathProviderViewEngine基类从当前的HostingEnvironment获取提供程序.
protected VirtualPathProvider VirtualPathProvider {
get {
if (_vpp == null) {
_vpp = HostingEnvironment.VirtualPathProvider;
}
return _vpp;
}
set {
_vpp = value;
}
}
Run Code Online (Sandbox Code Playgroud)
在单元测试中没有HostingEnvironment,即使我创建了一个HostingEnvironment,也没有当前的VirtualPathProvider.
我该如何解决这个问题?我是否必须创建自定义FakeWebFormViewEngine?
我也尝试这样做。不幸的是,问题不只是 VirtualPathProvider (VPP)。VPP用于将视图或部分视图映射到物理路径来确定文件的存在。不幸的是,ViewContext 以虚拟路径结束,而不是物理路径,因此当渲染视图时,Builder 使用不存在的 HostingEvnironment 的属性。
如果您使用的是带有测试功能的 Visual Studio 版本,则可以使用 Web 单元测试。这将允许您使用浏览器调用 URL,然后解析响应以检查值。
归档时间: |
|
查看次数: |
752 次 |
最近记录: |