ASP.NET MVC与Jquery / AJAX(在哪里绘制分界线?)

时间:2010-05-18 15:47:17

标签: jquery asp.net-mvc testing

我正在学习MVC,现在我了解基础知识。它非常适合CRUD页面,并内置了HTTP方法来发布/获取编辑/更新。那很好。只需创建一个新控制器并对其进行测试,这一切都是非常可测试的。

但是在使用MVC时我正在考虑其他网页的场景。如果页面包含2个用于添加/删除用户的列表框。 (按钮会将用户从一个列表框移动到另一个列表框)

这可以使用Jquery / Javascript完成......但是测试会发生什么?如何测试从该示例中的列表框中添加/删除用户?

在我看来,你使用的jquery越多,页面变得越不可测试?如果超出了填写的基本表单,那么您需要使用比标准MVC页面更多的东西。

当我不理解时,对此的正确理念是什么?

2 个答案:

答案 0 :(得分:1)

  1. 除非您的用户数据库是客户端浏览器的本地数据库,否则无法单独使用jQuery来添加/删除用户。在某些时候,您将不得不在MVC应用程序中调用控制器操作来保持选择。该行动是可以单元测试的。
  2. 有用于单元测试JavaScript的fameworks和技术,您可以使用它来对您的jQery代码进行单元测试。
  3. 考虑这种情况的正确方法是将您的应用程序分成两个 - 一个服务器MVC应用程序和一个客户端jQuery应用程序。客户端代码由服务器端应用程序操作和视图生成和传递这一事实无关紧要。

    一旦你开始分离这两个,你就可以开始考虑如何正确地对它们进行单元测试。

答案 1 :(得分:1)

渐进增强:http://www.alistapart.com/articles/understandingprogressiveenhancement/

使用常规HTML,使所有在没有jQuery / Ajax的情况下正常工作。简单的旧链接和提交。

然后,让jQ在顶部是一个非常薄的层。对我来说,我只有jQ submit forms via Ajax而不是常规提交。相同的形式,相同的控制器,它只是在没有整页刷新的情况下发生。

这样做意味着jQ唯一真正的责任是UI细化。如果失败,则会回退到常规HTML。

所以前端测试变得不那么重要了 - 你确信功能正确,你只是测试UI细节。