我发现mvc设置中的一个常见断点是当控制器返回时
return View();或者其他任何东西,并且视图引擎找不到视图。
我希望能够测试我的控制器,然后在生成的ViewResult上运行ExecuteResult,但是底层的ViewEngine与虚拟目录捆绑在一起,我不知道如何测试它。
理想情况下,我实际上希望能够渲染视图,并确定是否已找到它。
我在网上找不到太多关于这方面的信息,我想知道asp.net mvc到底有多“可测试”。
发布于 2009-05-16 13:55:48
我认为您的问题在于您试图进行过多的测试。
在没有看到代码的情况下,这有点困难,但有一些初始的起点:
1)将控制器与虚拟目录解耦-控制器应该是独立的,并且不依赖于底层web服务器设置。你通过这个访问了什么?
你的控制器将返回一个ViewResult,这应该附加了你的模型,然后你可以用它来验证正确的数据正在传递给你的视图。使用stubs\mock和依赖注入来验证控制器是否正确地与底层服务通信,比如您的数据库存储库。
有一组单独的集成测试来覆盖您的存储库实现。
2)使用web测试框架,如Watin,验证视图渲染是否符合预期。这将允许您与网页和HTML dom进行交互,以验证它是否按预期工作。通过单元测试测试您的控制器。两个不同层的两个单独的测试。
单元测试的目的是使您的测试和代码尽可能地隔离。
https://stackoverflow.com/questions/869203
复制相似问题