使用Velocity测试Meteor应用程序时检测代码是否在镜像中运行

时间:2014-12-09 00:38:52

标签: meteor meteor-velocity

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

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

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

我正在使用Velocity进行测试。我不希望这个代码在运行测试的镜像实例中运行(否则它将挖走我的XML命令,我不会在实际实例中看到它们)。因此,为此,我想知道如何判断服务器代码是否在测试环境中运行,以便我可以避免设置定期检查。

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

1 个答案:

答案 0 :(得分:3)

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

如果您想知道自己是否在镜子中,可以使用:

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

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

process.env.IS_MIRROR

你已经搞假了,这是正确的方法。