【问题标题】:Code coverage tools for haml?用于haml的代码覆盖工具?
【发布时间】:2011-07-07 04:42:11
【问题描述】:

看起来很有可能获得一份有用的 Haml 代码覆盖率报告,因为它每行一个语句的结构。

您知道任何用于 Haml 的代码覆盖工具吗?也许有些事情正在进行中?

【问题讨论】:

  • mmmm...我不太确定你会如何评价那个...
  • 我不是 HAML 粉丝,像这样的问题证实了这一点。您需要 HTML 的代码覆盖率吗?你在测试什么代码?
  • 您应该对任何类型的网页生成器都有代码覆盖,无论它看起来像带有嵌入式计算(ASP、PHP、JSP...)的 HTML,还是只是生成网页的程序代码文本。否则,您无法知道您的应用程序是否经过测试,因为部分应用程序代码位于这些网页生成器中。
  • 我发现人们甚至会问诸如您是否需要 HTML 的代码覆盖率之类的问题,这让我非常沮丧。它是动态生成的,对应用程序至关重要。当然需要测试。

标签: ruby-on-rails ruby code-coverage haml rcov


【解决方案1】:

代码覆盖率通常确保您覆盖所有代码路径。如果您认为有很多逻辑,那就是一种气味。我认为逻辑应该转移到您的助手、控制器(呈现不同的视图)或演示者,以及您可以完美覆盖测试的那些。

除此之外:理论上应该是可能的,但我不想鼓励在视图中放置过多的“智能”。

【讨论】:

  • 好的,但是分支呢?当然,你承认在观点中可以存在并且存在条件。你怎么知道你的验收测试覆盖了视图中的所有代码路径?
  • 例如,我们所做的是根据用户的权限呈现按钮或链接。我们将要渲染的内容包装在一个辅助函数中,该函数将评估条件,并且仅在用户拥有正确权限时才允许渲染。没有分支,代码路径很简单,你可以完美地测试助手。当然,简单的检查可以在视图中,但是为你的视图提出代码覆盖率是在鼓励错误的代码风格。
【解决方案2】:

非主流语言(如 HAML)的一个问题是工具很难找到,因为它们很难构建。

这篇技术论文Branch Coverage for Arbitrary Languages Made Easy(我是作者)描述了如何使用通用的工具构建基础架构以系统的方式构建语言测试覆盖率工具,以帮助解决这个问题。

【讨论】:

    猜你喜欢
    • 2018-10-14
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多