【问题标题】:What aspects can we cover Unit Testing ASP.NET MVC Views我们可以涵盖哪些方面 单元测试 ASP.NET MVC 视图
【发布时间】:2011-06-29 01:24:02
【问题描述】:

我最近在新的 Razor Generator 工具的帮助下看到了 David Ebbo 关于Unit Testing ASP.NET MVC razor views 的一篇不错的文章。但我一直在问自己这个问题,这可以最好地用于什么。当然,我们可以传入一个模型并检查所有属性是否已按计划填充到正确的 html 中。

我是这个单元测试视图业务的新手,所以需要弄清楚要在剃刀视图中进行单元测试的内容。建议??

【问题讨论】:

    标签: unit-testing asp.net-mvc-3 razor


    【解决方案1】:

    我一直在想同样的事情。我可以想到一些基本的东西来检查,例如:

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

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

    我认为您可以提出一些重要的测试来确保您的应用程序中的主要内容正常工作,但您只能通过非常快速的手动测试(甚至在开发过程中捕捉到)才能真正捕捉到非常明显的东西。有些人可能会认为这是值得的,我想这取决于应用程序/团队。

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

    【讨论】:

    • 我认为即使在大型商店中,这也可能不会增加太多价值。根据我的经验,如果发现它们被破坏,所有这些东西都很容易修复,并且尝试测试它们会增加更多成本而不会获得太多收益。您无法测试所有内容,在我看来,您的测试工作最好花在确保正确测试更复杂的代码位上。
    • 我大体上同意。我确实认为您可以提出一些重要的测试来确保您的应用程序中的主要内容正常工作,但您只能通过非常快速的手动测试(甚至在开发期间捕获)真正捕捉到非常明显的东西。有些人可能认为这是值得的,我想这取决于应用程序/团队。以前的经验告诉我,针对不断变化的 UI 维护测试很糟糕(如果不经常更改,测试不会增加太多价值)。
    • 丹尼,很好的跟进。也许考虑将您对我的后续评论转移到您的正确答案中。
    • 好主意 - 我已将其复制到答案中并进行了一些详细说明,因为我可以在其中容纳更多内容。
    • 这正是我所希望的。有太多的测试(尤其是这些类型)很容易危及整个测试的目的。我想说服自己:)。谢谢各位!
    猜你喜欢
    • 1970-01-01
    • 2011-08-22
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多