首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jasmine和node.js测试客户端javascript代码

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

Stack Overflow用户
提问于 2012-03-01 21:48:15
回答 2查看 3.7K关注 0票数 5

给定:客户端javascript代码(在浏览器中运行,使用jquery等)。目前,该代码在Rhinoenvjs上进行了测试。我们想切换到node.js。但是,经过研究后,找不到任何模拟浏览器的envjs-like补充工具。

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

有没有类似于node.jsRhino & envjs的标准包?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-01 22:11:38

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

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

下面是一个使用jsdom的简单示例:

代码语言:javascript
复制
var jsdom = require("jsdom");

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

你可以有一个url文档或片段来代替上面的HTML。

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

代码语言:javascript
复制
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,这可能是一个更好的起点。

票数 9
EN

Stack Overflow用户

发布于 2012-03-01 22:12:55

有两个选项可供选择

  1. 你的测试浏览器代码。在浏览器中运行它。模拟浏览器根本不能证明您的代码是有效的。
  2. 使用像phantom / zombie

这样的工具

当然也有替代方案,你可以提取任何与浏览器无关的代码,为它们编写一个单元测试套件,然后在node中运行它。只是JavaScript而已。

您还可以使用testling等托管服务为您运行浏览器测试

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9517351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档