2

我有一个简单的 Meteor 应用程序。我想在服务器端定期运行一些代码。我需要轮询远程站点以获取 XML 订单。

它看起来像这样(咖啡脚本):

unless process.env.ORDERS_NO_FETCH
    Meteor.setInterval ->
        checkForOrder()
    , 600000

我正在使用 Velocity 进行测试。我不希望这段代码在运行测试的镜像实例中运行(否则它会偷走我的 XML 订单并且我不会在真实实例中看到它们)。所以,为此,我想知道如何判断服务器代码是否在测试环境中运行,这样我就可以避免设置定期检查。

编辑我意识到我错过了在测试中伪造我的一个服务器调用,这就是为什么我的测试代码从真实服务器获取 XML 订单之一的原因。所以,这可能不是问题。我还不确定如何为服务器代码运行测试,以及服务器代码是否在镜像中运行(这是仅限客户端的概念)?

4

1 回答 1

3

使用 mocha/jasmine 集成测试时,服务器和客户端都在镜像中运行。

如果你想知道你是否在镜子里,你可以使用:

Meteor.call('velocity/isMirror', function(err, isMirror) { if (isMirror) { // do something } });

此外,在服务器上,您可以使用:

process.env.IS_MIRROR

你已经得到了假的工作,这是正确的方法。

于 2014-12-30T21:51:44.930 回答