在 nodeunit 中使用 sinon 模拟 [英] Using sinon mocks with nodeunit
问题描述
我正在学习将 sinon 与 nodeunit 结合使用,专门用于模拟.推荐方法是使用 sinon-nodeunit.根据文档,模拟应该可以通过mock
test
每个测试函数的参数.
I'm learning to use sinon with nodeunit, specifically to do mocking. The recommended approach is to use sinon-nodeunit. According to the documentation, mocks should be available via the mock
method of the test
parameter to each test function.
然而,这似乎不起作用.如果我在包含以下内容的文件上运行 nodeunit
—
However, this doesn't seem to work. If I run nodeunit
on a file containing the following —
require('sinon-nodeunit');
exports['test sinon-nodeunit'] = function (test) {
mock = test.mock({});
test.done();
};
——我明白了:
$ nodeunit test/test-sinon-nodeunit.js
test-sinon-nodeunit.js
✖ test sinon-nodeunit
TypeError: Object #<Object> has no method 'mock'
at /home/malkovich/test/test-sinon-nodeunit.js:4:17
at Object.runTest (/usr/local/lib/node/.npm/nodeunit/0.5.1/package/lib/core.js:54:9)
at /usr/local/lib/node/.npm/nodeunit/0.5.1/package/lib/core.js:90:21
at /usr/local/lib/node/.npm/nodeunit/0.5.1/package/deps/async.js:508:13
at /usr/local/lib/node/.npm/nodeunit/0.5.1/package/deps/async.js:118:13
at /usr/local/lib/node/.npm/nodeunit/0.5.1/package/deps/async.js:134:9
at /usr/local/lib/node/.npm/nodeunit/0.5.1/package/deps/async.js:507:9
at Object.concatSeries (/usr/local/lib/node/.npm/nodeunit/0.5.1/package/deps/async.js:147:23)
at Object.runSuite (/usr/local/lib/node/.npm/nodeunit/0.5.1/package/lib/core.js:79:11)
at Object.runModule (/usr/local/lib/node/.npm/nodeunit/0.5.1/package/lib/core.js:114:13)
FAILURES: 1/1 assertions failed (84ms)
我已经通过 npm install
安装了 sinon
(1.1.1) 和 sinon-nodeunit
(0.1.2) 的当前版本.
I've installed current versions of both sinon
(1.1.1) and sinon-nodeunit
(0.1.2) via npm install
.
推荐答案
require.path 在节点 0.5.x 及更高版本中被删除,sinon-nodeunit 使用.Christian Johansen 刚刚推动了 sinon-nodeunit 的更改,它应该与节点 0.6.2(和 0.5.x-series)兼容,应该可以解决这个问题......它已经在 sinon-nodeunits github 页面上可用,但仍然没有点击 npm...
require.path was removed in node 0.5.x and higher, which sinon-nodeunit uses. Christian Johansen just pushed a change in sinon-nodeunit which should be compatible with node 0.6.2 (and 0.5.x-series) which should fix this... It's already available on sinon-nodeunits github page, still hasnt hit npm though...
更新:应该提到 sinon-nodeunit 已经停产,因为创建者完全专注于 BusterJS,恕我直言,这是一个更好的框架.
update: should be mentioned that sinon-nodeunit has been discontinued, as the creator is full focused on BusterJS which IMHO is a much better framework.
这篇关于在 nodeunit 中使用 sinon 模拟的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!