C# 如何测试MVC视图?
我的页面有以下隐藏字段C# 如何测试MVC视图?,c#,asp.net,unit-testing,testing,tdd,C#,Asp.net,Unit Testing,Testing,Tdd,我的页面有以下隐藏字段 <%= Html.Hidden("SessionId", Model.Form.UniqueSessionId) %> 我希望能够测试视图是否有隐藏字段 protected SomeController controller; protected void SetupController() { controller = new SomeController() } [Test] public void view_has_hidden_field_
<%= Html.Hidden("SessionId", Model.Form.UniqueSessionId) %>
我希望能够测试视图是否有隐藏字段
protected SomeController controller;
protected void SetupController()
{
controller = new SomeController()
}
[Test]
public void view_has_hidden_field_for_SessionId()
{
ViewResult result = controller.Index() as ViewResult;
Assert.IsTrue(result.contains("<input type="hidden" id="SessionId" />"));
}
受保护的SomeController;
受保护的无效设置控制器()
{
控制器=新控制器()
}
[测试]
public void view_有_隐藏的_字段_用于_SessionId()
{
ViewResult=controller.Index()作为ViewResult;
Assert.IsTrue(result.contains(“”);
}
问题是:如何将视图渲染为字符串?有什么帮助吗?看看这个支持razor视图和标准asp.net视图的解决方案:
我给您的另一个建议是使用html解析器,例如,这样您就可以查询它来查找隐藏字段。这种方法更好,因为在重构html时,对string.contains的测试会使测试变得脆弱 这个问题不是重复的,但答案可以在找到。引用Bob叔叔(Robert Martin):“用你的眼睛”我想这里的问题是:你真的想对视图进行单元测试吗。
protected SomeController controller;
protected void SetupController()
{
controller = new SomeController()
}
[Test]
public void view_has_hidden_field_for_SessionId()
{
ViewResult result = controller.Index() as ViewResult;
Assert.IsTrue(result.contains("<input type="hidden" id="SessionId" />"));
}