2

我遇到了这个问题中描述的相同问题。基本上,如果您使用 node,sinon 只会拉入所有必需的子模块。如果您尝试在带有 AMD 的浏览器中使用它(我正在使用 webpack),显然您必须手动包含lib/spy.js.

我有一个当前导出 sinon 的 webpack 模块:

exports.sinon = require('sinon');

我将如何修改它以滚动spy.js

我认为这更像是一个 CommonJS 语法问题。

4

1 回答 1

1

以下似乎有效:

exports.sinon = require("sinon");
exports.sinon.spy = require("sinon/lib/sinon/spy");
exports.sinon.spyCall = require("sinon/lib/sinon/call");
exports.sinon.behavior = require("sinon/lib/sinon/behavior");
exports.sinon.stub = require("sinon/lib/sinon/stub");
exports.sinon.mock = require("sinon/lib/sinon/mock");
exports.sinon.collection = require("sinon/lib/sinon/collection");
exports.sinon.assert = require("sinon/lib/sinon/assert");
exports.sinon.sandbox = require("sinon/lib/sinon/sandbox");
exports.sinon.test = require("sinon/lib/sinon/test");
exports.sinon.testCase = require("sinon/lib/sinon/test_case");
exports.sinon.match = require("sinon/lib/sinon/match");

这基本上是在模仿 sinon.js 中的行为。如果有人有更好/更清洁的解决方案,请发布它,我会接受。现在我看着它,我想知道为什么会有

于 2014-08-15T22:11:59.973 回答