如何在JavaScript中运行(类似Python)doctests?

时间:2010-11-14 23:09:56

标签: javascript testing doctest

任何JavaScript测试框架都提供了与Python的doctest大致相当的东西吗?

function add(a, b) {
  /**
  Returns the sum of `a` and `b`:

    > add(1, 3)
    4

  Add coerces types to numeric values where possible:

    > add('51' + 3)
    54
  */
  return (a - 0) + (b - 0);
}

2 个答案:

答案 0 :(得分:12)

我无法理解Ian Bicking的软件包,doctestjs。他只是为我们提供了一种不同的方式来编写正常的外部测试,而不是真正的doctests。

我使用了很多python doctests,它们对我来说非常重要,我不知道doctestjs有什么用处,但我发现这个项目实现了一些真正的doctests:https://github.com/davidchambers/doctest

即使这不是javascript最新潮的doctest项目,我也非常喜欢它。


更新:在这个答案之后的一年多的时间里,我有机会为David Chambers的项目做出贡献,这篇文章写得非常好。我还在使用require.js的复杂应用程序中使用它,为此我们添加了对AMD模块的支持。我认为他也增加了对Common JS模块的支持。因此,我只能证实我的意见。

答案 1 :(得分:2)

昨天不知道我在抽烟。 Soory。

doctestjsdoctestjs on github)是正确的链接,似乎也在积极开发中。

尽管与使用doctestjs的python doctest有一点不同,你可以在HTML文件中声明测试,以便它们可以运行。

但我想应该可以在代码中声明内联测试。然后在构建过程中执行预处理步骤以提取测试并从中自动创建test-html

e.g。当使用ant我想象一个应用副本文件,replaceregexp,concat。 例如复制js文件,替换所有不是注释的内容和所有看起来不像doctestjs测试的注释。然后concat htmlhead + tests + headfooter完成。