Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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_Node.js_Web Application Design - Fatal编程技术网

Javascript单元测试完整堆栈

Javascript单元测试完整堆栈,javascript,unit-testing,node.js,web-application-design,Javascript,Unit Testing,Node.js,Web Application Design,我们正在寻找一个Javascript测试框架,它可以在客户端和服务器上跨整个应用程序堆栈执行测试。我们在客户端使用jQuery、RequireJS和Backbone.js,在服务器上使用Node.js和express Node.js应该通过使用相同的语言为客户端和服务器端开发提供更相似的设置来简化web应用程序的创建(在它的其他目标中)。然而,我发现很难进行单元测试,并找到一套在客户机和服务器上工作的一致的技术 目前,我们正在客户机上使用QUnit进行测试,在服务器上使用Expresso和Sho

我们正在寻找一个Javascript测试框架,它可以在客户端和服务器上跨整个应用程序堆栈执行测试。我们在客户端使用jQuery、RequireJS和Backbone.js,在服务器上使用Node.js和express

Node.js应该通过使用相同的语言为客户端和服务器端开发提供更相似的设置来简化web应用程序的创建(在它的其他目标中)。然而,我发现很难进行单元测试,并找到一套在客户机和服务器上工作的一致的技术

目前,我们正在客户机上使用QUnit进行测试,在服务器上使用Expresso和Should.js进行测试。它们有完全不同的接口,这使得测试客户端和服务器之间共享的代码非常困难。例如,一个进行验证的模块,客户端和服务器都需要访问,并且都需要对所有客户端和服务器进行单元测试。
本质上,我正在寻找一个圣杯,它允许我们以类似于客户机-服务器应用程序使用python和ruby等语言开发的方式来开发web应用程序。

听起来像是在寻找一种具有服务器端和客户机端组件的应用程序。每个部分都有一组单独的测试,但语法保持一致。您只需在buster.js配置中指定环境,如下所示:

env: "browser", // or "node"

这是目前所有可用框架中我最喜欢的选择。

我认为目前还没有为客户端和服务器端处理模块的统一标准。有AMD用于异步模块声明(在客户端使用),然后有node.js中的模块使用中提出的实现commonjs@badunk你说得对,这也是一个问题。但是,现在可以在服务器端使用RequireJS。我们还没有这样做。Node.js使用同步请求。这里有一个名为require.sure()的异步方案:在您习惯之后非常简单,它的作者真的致力于使它更好。@yaudaev-neat!谢谢你的提示;)这看起来是个很棒的工具。我一定要去看看。谢谢埃里克。这看起来有点年轻,但希望到本月底,他们能得到稳定的1.0。我喜欢他们的想法:)。只是想确保我们可以信任测试结果,不会返回误报或崩溃。你所说的“每个部分都有一套单独的测试”是什么意思?为什么?@yagudaev我的意思是,一组测试配置为在“浏览器”模式下运行,另一组测试配置为使用require等在“节点”模式下运行。就成熟度而言,从0.5.1开始,我就没有任何问题,我正在将其用于生产应用程序。现在在网站上观看视频,buster真是太棒了。它确实做了我一直在寻找的所有东西:)。我会接受这个答案,为了完整起见,如果能多得到一些选择,那就太好了。