我正在学习如何在nodeunit中使用sinon,特别是用来做模拟。recommended approach将使用sinon-nodeunit。根据the documentation的说法,模拟应该可以通过每个测试函数的test参数的mock方法来使用。
然而,这似乎不起作用。如果我对包含以下内容的文件运行nodeunit -
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)的当前版本。
发布于 2011-11-23 20:13:19
在sinon-nodeunit使用的节点0.5.x和更高版本中删除了require.path。Christian Johansen刚刚推动了sinon-nodeunit的变化,它应该与node 0.6.2 (和0.5.x系列)兼容,应该可以解决这个问题……它已经在sinon-nodeunits页面上提供了,但还没有达到npm……
更新:值得一提的是,sinon-nodeunit已经停产,因为创建者完全专注于BusterJS,而IMHO是一个更好的框架。
https://stackoverflow.com/questions/6104796
复制相似问题