什么是定义仅在测试中使用的Meteor服务器方法的安全方法?

时间:2016-01-24 06:50:28

标签: meteor

我希望这些方法仅适用于测试,而不是应用程序代码。例如,删除任何用户的方法。我不希望在生产代码中使用此功能。但它在测试代码中很有用。

如何在测试环境中添加这样的方法,同时将其保留在生产代码之外?

1 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案:

假设您创建了一个名为test-helpers的包。在其中,您在removeAllUsers命名空间中创建了一个名为TestHelpers的函数。

现在在另一个需要TestHelpers.removeAllUsers的软件包中,您可以这样做:

Package.onTest(function(api) {
  api.use('TestHelpers', 'server');
});

由于我们仅在onTest中包含了该包,因此它不会存在于您的生产代码中。此外,我们创建了一个仅服务器功能(不是方法),因此即使它在生产中暴露,也无法从客户端调用。