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

上下文无关的javascript测试框架

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

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

    是否有这样一个框架,或者一种简单地改造现有框架的方法,使其不受上下文影响?

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

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

    好的,这是我根据一些早期的工作酿造的。我希望这能满足你的需要。

    jsUnity

    轻量级通用javascript测试框架

    JSUnice 是一个轻量级的通用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    14 年前

    Jasmine 看起来很有趣。

    根据开发人员的说法,编写它是因为其他JS测试框架中没有一个能够满足它们在单个产品中的所有需求,并且不需要像dom、jquery或 window 对象是显式设计点之一。

    我想把它和 env.js 以及Rhino/Spidermonkey/V8/etc.为我的Web应用程序编写客户端测试,这些测试可以在所有与Python单元测试相同的情况下轻松运行。( setup.py test ,buildbot等)

        3
  •  1
  •   Aaron    15 年前

    你可能想退房 YUI Test . 如果没有DOM,它应该可以正常工作。

        4
  •  0
  •   geowa4    15 年前

    只要启用了javascript,就可以运行这些脚本。

    scriptaculous unit-testing

    QUnit

        5
  •  0
  •   xvga    15 年前

    还有 JSpec

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

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

        6
  •  0
  •   Ingvald    14 年前

    我只是 got Hudson CI to run JasmineBDD 至少对于纯JavaScript单元测试而言。

        7
  •  0
  •   Rob W jminkler    11 年前

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