javascript - qunit 和 jquery 未捕获的异常

标签 javascript jquery node.js unit-testing qunit

我在尝试使用 qunit 让 javascript 单元测试在命令行上工作时遇到问题。

下面是一些重现错误的示例代码:

文件util.js:

function abc() {
    return 'abc';
}

if (typeof module !== 'undefined' && module.exports) {
    module.exports = {
        abc: abc
    };
}

文件util-tests.js

var qunit = require("qunit");

test("Test abc function", function () {
         equal(util.abc(), 'abc');
});

有了这些文件,我可以使用以下命令运行测试(在 shell 中提供类似表格的输出以及测试结果):

qunit -c util:util.js -t util-tests.js

现在,如果我将以下内容添加到 util.js,它就会中断

$(document).ready(function () {
    /* some code here */
});

这是错误输出:

qunit -c util:util.js -t util-tests.js

Testing /home/mfrere/jstst/util.js ... [Error: Uncaught exception in child process.]

同样的问题:

var a = $;

或者:

var a = document;

所以这让我觉得我需要以某种方式导入 jQuery,所以我考虑添加 jquery.js 作为命令的依赖项,如下所示:

qunit -c util:util.js -t util-tests.js -d jquery.js

即使 util.js 不包含任何对“$”的引用,上述命令也会给出相同的“未捕获异常”错误。

我可能需要做一些其他事情来让 qunit 识别“文档”,但我不知道什么或如何。

现在我的问题是:我应该怎么做才能使其正常工作?请务必记住,我想在命令行而不是在浏览器中测试我的文件。 p>

以防万一我在设置过程中做错了什么,这就是我安装node/qunit(在ubuntu下)的方式:

git clone git://github.com/creationix/nvm.git ~/.nvm

在 .bashrc 中,我添加了以下行:

source ~/.nvm/nvm.sh

选择了特定版本的 Node

nvm install v0.9.2
nvm alias default 0.9

并安装了 qunit

npm install -g qunit

最后我也必须将其添加到 .bashrc 中:

export NODE_PATH=~/.nvm/v0.9.2/lib/node_modules

最佳答案

您尚未导入 jQuery:

$ = 要求('jquery'), jQuery = require('jquery');

如果您使用 browserify,请将其更改为“jquery-browserify”。

关于javascript - qunit 和 jquery 未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110027/

相关文章:

javascript - 将 CSS 样式的 HTML 导出为 PDF

javascript - 如何获取值[对象][对象]

javascript - iframe 中的 Google 搜索结果

javascript - 将多维数组的 php 数组转换为 javascript 数组

javascript - 火狐扩展 : write cookie names for the current web-page in a local . txt 文件

mysql - 通过包含 jQuery 的 Img Src 变量更新 MySQL 值

javascript函数延迟或设置超时不起作用

javascript - 部分中的对象无法调整大小以适应部分大小 CSS/HTML

arrays - 为什么我插入数组后仍然是空的?

javascript - TradingView React 组件中的图表更新不起作用