使用Npm.depends声明测试依赖项

时间:2015-06-25 00:43:54

标签: node.js meteor

我想知道如何在测试中声明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'
  });


});

有什么建议吗?

1 个答案:

答案 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