【问题标题】:Using sinon mocks with nodeunit使用带有 nodeunit 的 sinon 模拟
【发布时间】:2011-05-24 01:15:46
【问题描述】:

我正在学习将 sinon 与 nodeunit 一起使用,专门用于模拟。 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) 的当前版本。

【问题讨论】:

    标签: javascript unit-testing node.js sinon nodeunit


    【解决方案1】:

    require.path 在节点 0.5.x 及更高版本中被删除, sinon-nodeunit 使用它。 Christian Johansen 刚刚推动了 sinon-nodeunit 的更改,该更改应该与节点 0.6.2(和 0.5.x 系列)兼容,应该可以解决这个问题......它已经在 sinon-nodeunits github 页面上可用,但仍然没有命中 npm。 ..

    更新:应该提到的是 sinon-nodeunit 已经停产,因为创建者完全专注于 BusterJS,恕我直言,这是一个更好的框架。

    【讨论】:

      猜你喜欢
      • 2021-11-05
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 2017-07-25
      相关资源
      最近更新 更多