MVC Preview 5-将视图渲染到字符串以进行测试
时间:2020-03-06 14:32:29 来源:igfitidea点击:
我正在阅读Brad Wilson的帖子(http://bradwilson.typepad.com/blog/2008/08/partial-renderi.html),其中介绍了ViewEngine对MVC Preview 5的新更改,并认为能够实现这一点很棒将视图呈现为字符串以在测试中使用。我从这篇文章中得到的印象是,有可能实现这一目标,但无法弄清楚如何实现。
我相信这将使我们能够消除某些WatIn测试(速度慢且不可靠),因为它将使我们能够通过简单地检查预期值/文本字符串来检查View是否正确呈现。
有没有人实现这样的事情?
解决方案
这很棘手。我们所要做的就是将Response.Filter属性设置为我们实现的自定义流类。 MVC Contrib项目实际上具有执行此操作的示例。我在那儿戳。
此外,测试对于诸如HTML到PDF转换器之类的组件很有用。
这些组件通常使用2种转换方式。
- 将URL传递给转换方法
- 传递HTML内容(并且我们可以选择指定baseUrl来解析虚拟路径)
我在控制器内部使用了Authorize过滤器,因此,如果我重定向到URL,则呈现的HTML将是登录页面之一(我使用自定义身份验证)。
如果我使用Server.Execute(Url)保留上下文,则该方法将失败(HttpUnhandledException:对/ Template / Pdf / 1执行子请求时出错。)。
因此,我尝试检索呈现的ViewResult的HTML,但未成功。