代码之家  ›  专栏  ›  技术社区  ›  Zach

上下文无关的JavaScript测试框架

  •  11
  • Zach  · 技术社区  · 17 年前

    我正在寻找一个JavaScript测试框架,可以在任何环境中轻松使用,无论是浏览器、控制台、XUL等。

    是否有这样的框架,或者有一种方法可以轻松地改造现有的框架,使其与上下文无关?

    编辑:测试框架应该 可以绑定到任何其他框架,如jQuery或Prototype.js,不应该依赖于DOM(或文档对象)的存在。我在找东西测试 纯JavaScript .

    7 回复  |  直到 17 年前
        1
  •  4
  •   Ates Goral    17 年前

    好的,这是我根据之前的一些工作酿造的东西。我希望这能满足你的需求。

    jsUnity

    轻量级通用JavaScript测试框架

    jsUnity 是一个轻量级的通用JavaScript测试框架 上下文无关。它不依赖于 任何浏览器功能,因此 可以在HTML、ASP、WSH或 使用的任何其他上下文 JavaScript/JScript/ECMAScript。

    HTML中的示例用法

    <pre>
    <script type="text/javascript" src="../jsunity.js"></script>
    <script type="text/javascript">
    function sampleTestSuite() {
        function setUp() {
            jsUnity.log("set up");
        }
    
        function tearDown() {
            jsUnity.log("tear down");
        }
    
        function testLessThan() {
            assertTrue(1 < 2);
        }
    
        function testPi() {
            assertEquals(Math.PI, 22 / 7);
        }
    }
    
    // optionally wire the log function to write to the context
    jsUnity.log = function (s) { document.write(s + "</br>"); };
    var results = jsUnity.run(sampleTestSuite);
    // if result is not false,
    // access results.total, results.passed, results.failed
    </script>
    </pre>
    

    上述输出:

    2 tests found
    set up
    tear down
    [PASSED] testLessThan
    set up
    tear down
    [FAILED] testPi: Actual value does not match what's expected: [expected] 3.141592653589793, [actual] 3.142857142857143
    1 tests passed
    1 tests failed
    
        2
  •  2
  •   ssokolow    15 年前

    Jasmine 看起来很有趣。

    据开发人员称,编写它是因为其他JS测试框架都没有在一个产品中满足他们的所有需求,也不需要DOM、jQuery或 window 对象是显式设计点之一。

    我在考虑用它 env.js Rhino/SpiderMonkey/V8/等为我的web应用程序编写客户端测试,这些测试可以在与Python单元测试相同的所有情况下轻松运行。 ( setup.py test 、BuildBot等)

        3
  •  1
  •   Aaron    17 年前

    你可能想看看 YUI Test 。没有DOM,它应该可以正常工作。

        4
  •  0
  •   geowa4    17 年前

    这些程序在启用javascript的任何地方运行。

    scriptaculous unit-testing

    QUnit

        5
  •  0
  •   xvga    16 年前

    还有 JSpec

    JSpec是一个非常小但非常强大的测试框架。利用自己的自定义语法和预处理器,JSpec可以以其他JavaScript测试框架无法实现的方式运行。这包括许多有用的简写文字、非常直观/可读的语法,以及不会污染核心对象原型。

    JSpec还可以通过多种方式运行,例如通过支持Rhino的终端,通过使用DOM或Console格式化程序的浏览器,或者最后通过在后台运行浏览器并向终端报告的Ruby JavaScript测试框架。

        6
  •  0
  •   Ingvald    15 年前

    我只是... got Hudson CI to run JasmineBDD ,至少对于纯javascript单元测试来说是这样。

        7
  •  0
  •   Rob W jminkler    13 年前

    JsUnit 有什么帮助吗?它被设计为在浏览器中运行,但看起来相对抽象。