我们可以涵盖单元测试ASP.NET MVC视图的哪些方面

Ill*_*ati 6 unit-testing razor asp.net-mvc-3

我最近在David Rabor 工具的帮助下看到了David Ebbo关于单元测试ASP.NET MVC剃刀视图的好文章.但我一直在问自己这个问题,这可以最好地利用.当然,我们可以传入一个模型并检查是否已按计划将所有属性填充到正确的html中.

我是这个单元测试视图业务的新手,因此需要了解在剃刀视图中进行单元测试的内容.建议?

Dan*_*eny 6

我一直想知道同样的事情.我可以考虑一些基本的东西来检查,例如:

  • HTML有效/格式良好
  • 页面标题(<title>/<h1>)匹配模型中的标题
  • 模型正文出现在页面中
  • 包含正确的CSS/Javascript
  • 重要链接正确显示(分页/购买/更多信息)
  • 性能(如果您有延迟加载的模型,可能会出现性能问题,您只能看到视图中的代码枚举/访问数据)

在一个小应用程序中,这可能不会增加很多价值.然而,在一个大型应用程序中,测试视图可以派上用场,以确保在进行其他更改时不会破坏更改(尽管尽最大努力保持隔离,但打破您认为自己从未进行过更改的内容并非完全不寻常至!).

我认为你可以提出一些重要的测试来确保应用程序中的主要功能,但是你只能通过非常快速的手动测试(甚至在开发期间捕获)来捕获非常明显的东西.有些人可能认为这是有价值的,我想这取决于应用程序/团队.

以前的经验告诉我,针对不断变化的用户界面维护测试很糟糕(如果不经常更改,测试不会增加太多价值).在我上一家公司,我们花了很多时间来修复因应用程序更新而破坏的测试,我们无法添加新测试(尽管这部分是由于我们使用的(废话,但价格昂贵)软件 - Mercury QuickTest).使用C#编写的测试可能更易于维护,但您仍需要真正权衡维护工作与从测试中获得的好处.