Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
上下文无关JavaScript测试框架_Javascript_Unit Testing_Testing_Frameworks - Fatal编程技术网

上下文无关JavaScript测试框架

上下文无关JavaScript测试框架,javascript,unit-testing,testing,frameworks,Javascript,Unit Testing,Testing,Frameworks,我正在寻找一个JavaScript测试框架,可以在任何上下文中轻松使用,无论是浏览器、控制台、XUL等 是否有这样一个框架,或者有一种方法可以轻松地改造现有框架,使其不受上下文影响 编辑:测试框架应该而不是绑定到任何其他框架,如jQuery或Prototype.js,并且不应该依赖于存在的DOM(或文档对象)。我正在寻找测试纯JavaScript的东西 只要启用javascript,这些脚本就会运行 有什么帮助吗?它被设计为在浏览器中运行,但看起来相对抽象。您可能想签出。如果没有DOM,它应该

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

是否有这样一个框架,或者有一种方法可以轻松地改造现有框架,使其不受上下文影响


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

只要启用javascript,这些脚本就会运行


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

您可能想签出。如果没有DOM,它应该可以正常工作。

好的,这里有一些我刚刚根据一些早期工作酿制的东西。我希望这能满足你的需要

轻量级通用JavaScript测试框架

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

HTML内部的示例用法

函数sampleTestSuite(){
函数设置(){
jsUnity.log(“设置”);
}
函数拆卸(){
jsUnity.log(“拆除”);
}
函数testLessThan(){
资产真实性(1<2);
}
函数testPi(){
资产质量(数学PI,22/7);
}
}
//可选地连接日志函数以写入上下文
jsUnity.log=函数{document.write(s+“
”);}; var results=jsUnity.run(sampleTestSuite); //如果结果不是假的, //访问results.total、results.passed、results.failed
以上各项的输出:

发现2项测试 设置 拆毁 [通过]测试 设置 拆毁 [失败]testPi:实际值与预期值不匹配:[预期值]3.141592653589793,[实际值]3.142857142857143 1项测试通过 1项测试失败 还有

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

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

看起来很有趣

据开发人员称,之所以编写这个测试框架,是因为没有一个JS测试框架能够在一个单一的产品中满足他们的所有需求,而不需要DOM、jQuery或
窗口
对象是明确的设计点之一


我正在考虑将它与Rhino/SpiderMonkey/V8/等一起使用,为我的web应用程序编写客户端测试,它可以轻松地在与Python单元测试相同的情况下运行。(
setup.py测试
、BuildBot等)

我只是,至少对于纯javascript单元测试

问题是,他们希望有一个包含文档、DOM等的浏览器环境。此外,您列出的这些环境取决于各自的框架。有趣的是,您是否在浏览器之外对用于浏览器的javascript进行单元测试?不完全是,它可能用于任何javascript环境。我确实尝试过,但是它对window.navigator和其他东西很烦人。我已经制定了一个行动计划来做这件事,谢谢!我想对于javascript测试框架来说,上下文无关不是一件好事。浏览器怪癖可能导致意外故障。在现实世界中(在浏览器中),通过JsUnity的测试可能会失败。因此,imho这种库应该依赖于浏览器(在不同的浏览器中执行测试)
<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