【发布时间】:2015-07-17 14:04:25
【问题描述】:
我有以下方法需要渲染一个视图(这个视图实际上并不存在)。
public class HomeController : Controller
{
public ActionResult GetTestPage()
{
return PartialView("~/Views/admin/TestPage.cshtml");
}
}
我在一个单独的类中有以下测试方法。
[TestClass()]
public class HomeControllerTests : Controller
{
[TestMethod()]
public void GetTestPageTest()
{
HomeController hc = new HomeController();
ActionResult actual = null;
try
{
actual = hc.GetTestPage();
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("Exception Caught, Test Fail: " + e.ToString());
Assert.Fail();
}
Assert.IsNotNull(actual);
}
}
目前这个测试通过了,但它不应该。我知道我可以通过在.csproj 文件中将我的<MvcBuildView> 标记设置为true 来破坏构建。
但是,我想要一个单元测试(使用 VS 2012 中的 MS 测试环境)来测试视图是否编译/存在/发送回响应。
最好的方法是什么?
谢谢!
【问题讨论】:
-
"目前这个测试通过了,但它不应该" 为什么不呢?你为什么认为它会失败?
-
因为视图文件不存在。现在,我认为正在比较对象的“类型”而不是实际视图。我编辑了上面的测试方法。 我更希望通过单元测试来确定视图没有编译。我知道我的测试方法可能远非正确。
-
你应该可以用RazorEngine渲染视图
标签: c# .net unit-testing visual-studio-2012 razor