我有一个简单的Meteor应用程序。我想在服务器端定期运行一些代码。我需要轮询远程站点以获取 XML 订单。
它看起来像这样(咖啡脚本):
unless process.env.ORDERS_NO_FETCH
Meteor.setInterval ->
checkForOrder()
, 600000
我正在使用速度进行测试。我不希望此代码在运行测试的镜像实例中运行(否则它会窃取我的 XML 订单,我不会在实际实例中看到它们)。因此,为此,我想知道如何判断服务器代码是否在测试环境中运行,以便避免设置定期检查。
编辑 我意识到我错过了在测试中伪造我的一个服务器调用,这就是为什么我的测试代码从真实服务器获取其中一个 XML 订单的原因。所以,这可能不是问题。我还不确定服务器代码的测试是如何运行的,以及服务器代码是否在镜像中运行(这是仅客户端的概念)?
使用 mocha/jasmine 集成测试时,服务器和客户端都在镜像中运行。
如果你想知道你是否在镜子里,你可以使用:
Meteor.call('velocity/isMirror', function(err, isMirror) {
if (isMirror) {
// do something
}
});
此外,在服务器上,您可以使用:
process.env.IS_MIRROR
你已经让假货起作用了,这是正确的方法。