我想知道如何在测试中声明Meteor中Npm模块的依赖。
在测试软件包时,我可以轻松地在package.js
中声明一个Npm依赖项,如下所示:
Npm.depends({
...
'sinon': '1.15.3'
...
});
但我只是在测试中使用sinon
,我想明确它。
我尝试了以下但没有成功。
Package.onTest(function(api) {
// # 1
// can't do this because it is not a meteor module
api.use('sinon');
// # 2
// can't because I have other production Npm dependencies
// and Meteor only allows one `Npm.depends` call per `package.js`.
// Also, not sure if nesting Npm.depends() is allowed at all.
Npm.depends({
'sinon': '1.15.3'
});
});
有什么建议吗?
答案 0 :(得分:1)
执行此操作的唯一方法是将sinon包装到包中并api.use
。您可以执行以下操作:
$ meteor create --package sinon
使用以下内容替换packages/sinon
的内容:
<强> package.js 强>
Package.describe({
summary: 'Standalone test spies, stubs and mocks for JavaScript.'
});
Package.onUse(function(api) {
api.versionsFrom('1.0.4');
api.export('sinon', 'server');
api.addFiles('sinon.js');
api.addFiles('post.js');
});
<强> post.js 强>
sinon = this.sinon;
<强> sinon.js 强>
从here下载最新版本。
最后,在您正在测试的软件包中,您可以在api.use('sinon');
中添加Package.onTest
。
作为制作自己的软件包的替代方法,您可以使用其中一个可用的社区版本here。