ASP.NET MVC测试方法与技巧

fmms 12年前
     <p> 作者 <a href="/misc/goto?guid=4958333218530680763">Roopesh Shenoy</a> 译者 <a href="/misc/goto?guid=4958331654885407681">曹如进</a></p>    <p> 一个 ASP.NET MVC 3 Web 应用程序有几个部分组成——模型(model)、控制器(controller)、路由处理器(route-handler)、视图(view)、 html-helper、客户端代码等。其中大部分模块都可以进行单元测试,有一些则需要集成测试。关于如何让测试更易维护以及如何避免它们过于脆弱,有一些最佳实践能够帮得到你。</p>    <p> 以下是一些测试相关的资源介绍:</p>    <ul>     <li>不仅是 actions,你还可以使用 <a href="/misc/goto?guid=4958333992955386372">MvcScaffolding</a> 生成单元测试的基架模板 (scaffolding) ;</li>     <li>使用<a href="/misc/goto?guid=4958333993760342484">自定义 HTML Helpers</a>,而不要在视图中编写大量逻辑,因为前者更容易进行单元测试。另外,测试自定义 html-helper 时应<a href="/misc/goto?guid=4958333994558725864">避免硬编码 html 元素</a>;</li>     <li>使用类似 <a href="/misc/goto?guid=4958333995334918930">Specflow</a> 的 BDD 框架编写端到端的验收测试;</li>     <li>尽管在路由表之外添加新的路由很容易破坏已有路由,但你可以通过<a href="/misc/goto?guid=4958333996128576198">对路由表进行单元测试</a>来避免该问题;</li>     <li><a href="/misc/goto?guid=4958333996914741113">打开视图编译</a>开关。 这虽然并不完全是单元测试,但它可以帮助发现运行时才能看到的错误;</li>     <li>如果 UI 变化不大,可以使用 <a href="/misc/goto?guid=4958333997699263541">WaTiN</a> 来测试 UI。另外,可以通过使用<a href="/misc/goto?guid=4958333998499485512">页面对象</a>(Page Object)调整 UI 设计改动,来让集成测试变得稍微灵活些;</li>     <li>使用一款 JS 测试框架,如使用 <a href="/misc/goto?guid=4958332522408596982">Jasmine</a> 来<a href="/misc/goto?guid=4958334000025453570">测试 JavaScript</a>。</li>    </ul>    <p> 您还知道什么其他的测试 ASP.NET MVC 应用程序的技巧吗?请留言支招。</p>    <p> <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958334000827729820">http://www.infoq.com/news/2012/03/aspnet-unit-test</a></p>    <div id="come_from">     来自:     <a id="link_source2" href="/misc/goto?guid=4958334001615531352" target="_blank">InfoQ</a>    </div>