最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

使用Jasmine和node.js测试客户端javascript代码

IT培训 admin 7浏览 0评论

使用Jasmine和node.js测试客户端javascript代码

给定:客户端javascript代码(在浏览器中运行,使用jquery等)。目前,代码使用Rhinoenvjs进行测试。我们想切换到node.js.然而,经过一些研究,找不到任何模仿浏览器的envjs式补充。

在“按原样”运行node.js时,甚至缺少像alert()window这样的基本功能。

是否有任何标准捆绑,类似Rhino & envjsnode.js请?

回答如下:

您可以使用zombie.js,它具有测试所需的一切。或者您可以利用jsdom(zombie.js在内部使用)在node.js中获取DOM,并针对该DOM执行测试。

我还可以推荐testling,它在所有常见浏览器中根据您的规范执行测试 - 代码在实际浏览器中针对您的服务运行。

这是jsdom的一个简单示例:

var jsdom = require("jsdom");

jsdom.env(url, ["http://code.jquery/jquery.min.js"], function(err, window) {
    // jQuery is at window.$
});

您可以使用HTML文档或片段代替上面的url

您还可以加载页面并获取任何外部资源,而不是直接向jsdom提供jQuery等:

var jsdom = require("jsdom").jsdom,
    doc = jsdom(markup),
    window = doc.createWindow();

// Do your stuff on window, jsdom will have fetched all the scripts referenced in the markup

同样,zombie.js在内部使用jsdom,它可能是一个更好的起点。

使用Jasmine和node.js测试客户端javascript代码

给定:客户端javascript代码(在浏览器中运行,使用jquery等)。目前,代码使用Rhinoenvjs进行测试。我们想切换到node.js.然而,经过一些研究,找不到任何模仿浏览器的envjs式补充。

在“按原样”运行node.js时,甚至缺少像alert()window这样的基本功能。

是否有任何标准捆绑,类似Rhino & envjsnode.js请?

回答如下:

您可以使用zombie.js,它具有测试所需的一切。或者您可以利用jsdom(zombie.js在内部使用)在node.js中获取DOM,并针对该DOM执行测试。

我还可以推荐testling,它在所有常见浏览器中根据您的规范执行测试 - 代码在实际浏览器中针对您的服务运行。

这是jsdom的一个简单示例:

var jsdom = require("jsdom");

jsdom.env(url, ["http://code.jquery/jquery.min.js"], function(err, window) {
    // jQuery is at window.$
});

您可以使用HTML文档或片段代替上面的url

您还可以加载页面并获取任何外部资源,而不是直接向jsdom提供jQuery等:

var jsdom = require("jsdom").jsdom,
    doc = jsdom(markup),
    window = doc.createWindow();

// Do your stuff on window, jsdom will have fetched all the scripts referenced in the markup

同样,zombie.js在内部使用jsdom,它可能是一个更好的起点。

发布评论

评论列表 (0)

  1. 暂无评论